Mega Code Archive

 
Categories / Delphi / System
 

Hwnd

//Murat Turan var i:HWND; begin i:=FindWindowEx( FindWindowEx(FindWindow('Tana', 'DenemeFormu'), 0, 'TGroupBox', 'GroupBox1'), 0, 'TEdit', 'Edit4' ); SendMessage(i, WM_CLOSE ,0,0); { ana formun adı :ana tabi tip olara Tana olmuş oluyor. başlığı DenemeFormu bu formun altında GroupBox1 adıda bir bileşen var. bu bileşenin de tipi TGroupBox ve Başlığıda GroupBox1 bu GroupBox1 içerisinde TEdit tipinde adı Edit4 ve içeriğide Edit4 olan bir bileşen var işte o bileşen kapatılıyor. FindWindowEx fonksiyonunu da kullanım amacı da iç içe geçmiş kontrolleri yönlendirmek. aslında bu sayede sabit olan kontroller rahatlıkla idare edilebilir. direkt HWND bilgisiyle bu işi yapmak zor. biliyorsunuz ki. uygulama her açıldığında içerisindeki bütün bileşenler yeniden windows tarafından numaralandırılır. Microsoft Spy++ kullanılarak açık uygulamaların HWND,ClassName vs.. bilgilerine rahatlıkla erişebilirsiniz. //* * * * * * * * i:=$000103E0; //* * * * * * * * mesela o an işlem yapmak istediğim Edit4 ün o anki HWND numarası üsteki gibi idi. aslında i değişkenine sadece bu değer atayıp da bu kontrolü yönlendirebilirdim. ama üste belirttiğin gibi bu numara programın bir sonraki başlatılışında değişeceği için o anlık sonuç verecektir. üste uzunca yazdığım kod ise uygulama ne zaman başlatılırsa başlatılsın işe yarayacaktır. Aklıma gelmişken başka bir öenek daha vereyim. mesela hesap makinesinin Geri tuşunu kapatalım. Bunuda yapabiliriz. Tabi bu işlemler sadece kapatmak için değildir Ben WM_CLOSE parametresini kullandım. böype epeyce parametre mevcut. } i:=FindWindowEx(FindWindow('SciCalc', 'Hesap Makinesi'),0,'Button','Geri tuşu'); { Unutmayın bu isimleri Microsoft Spy++ ile buluyorum. Bu programı nereden bulurum diyorsanız Microsoft Visual Studio .NET 2003 kurulum paketi veya Microsoft Visual Studio 6 Paketinde mevcut. }