2010-02-15 21 views

cevap

13

Formdaysanız: Me.hWnd. Geçerli şeklidir hangi formun bilmiyorsanız: Windows API kullanarak Screen.ActiveForm.hWnd

2

Ben VB6 kullanılan bu yana uzun zaman geçti, ama bu hatırlıyorum budur:

Sen VB6 girişi etrafında Başlat Menüsü olmalıdır API Viewer, açmak isteyeceksiniz. Açtığınızda win32api.txt dosyasını seçmek istersiniz ve tüm Win32 API işlevlerinin bir listesini alırsınız. Bu, işlev imzalarını dağıtmamanın en kolay yoludur. İşlev bildirimini kopyalayıp VB6 modüllerinden birine yapıştırın.

Her zaman "aldatırım" ve penceremi, Windows ile GetWindow ile tüm pencerelerin üzerine yazmak yerine, başlık adıyla aradım. Bununla ilgili sorun yaşıyorsanız, FindWindow'u kullanmak ve altyazı adını ikinci parametre olarak iletmek istersiniz.

8

, GetForegroundWindow() olursa olsun arasındadır hangi uygulamanın en üst pencerenin tanıtıcı alacak ve GetActiveWindow() uygulamanızın entutamacını alacak aktif pencere Declare ihtiyacınız olacak ifadeler: Yukarıda açıklandığı gibi her iki işlevin çağrılması

Declare Function GetForegroundWindow Lib "user32.dll"() As Long 
Declare Function GetActiveWindow Lib "user32.dll"() As Long 

bir pencere tanıtıcısı döndürür.

+0

+1. Açıkçası şu anda aktif olan pencere bir form olmayabilir. – MarkJ

+0

+1 İyi cevaplar da. –

İlgili konular