Başka Uygulamaya mesaj gönderirken caption değeri aynı ise..

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Başka Uygulamaya mesaj gönderirken caption değeri aynı ise..

Mesaj gönderen serkan »

merhaba arkadaşlar..

örneğin bir setup programında next,I agree'yi işaretlemek ve sonreki nextler en sonundada finishe basmak gibi standart işlemler var yapmak istediğim bu butonlara tek buttonclick ile yapmak..Şimdi aşağıdaki kod ile.

Kod: Tümünü seç

var
 hApp,hButton,hcheckbox:Thandle;
begin
hApp:=Findwindow(nil,'Installing IconXP 3.10');

 hbutton:=FindWindowEx(hApp,0,'Button','&Next >'); {İlk ekrandaki next butonuna basar}
 sendmessage(hbutton,bm_click,0,0);
 hcheckbox:=FindWindowEx(hApp,0,'Button','I &agree with the above terms and conditions');
 sendmessage(hcheckbox,bm_click,0,0);
 hbutton:=FindWindowEx(hApp,0,'Button','&Next >'); {İkinci ekrandaki next butonuna basar}
 sendmessage(hcheckbox,bm_click,0,0);
ilk next butonuna basıp diğer sayfaya geçiğ I agree seçeneğini işaretliyor fakat daha sonra ki next butouna tıklamıyor çünkü ilk sayfadaki next butonuyla aynı isimde burda caption yerine başka bir değer lazım ama böyle bişey varmıdır.mesela winsightda handle değeri var 0003222 diye bişey &Next > yerine o handle ulaşılamazmı. Yardımcı olursanız sevinirim..
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

Bildiğim kadarıyla temelde zaten handlle numarası kullanılıyor. sendmessage fonksiyonunu incelerseniz caption'dan handle numarasını elde eden bir alt yordam vardır. Handle numraları program yeniden çalıştığında değişebilir, yani bildiğim kadarıyla sabit değil. Bir önceki Next butonunun kordinatlarını alıp tekrar aynı yere olay göndermeyi deneyebilirsiniz.
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

peki kordinata nasıl click yordamı gönderebiliriz. Böyle bir kod örneği varmı?
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

tag degeri işe yararmı acaba...
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

FindWindowEx fonksiyonu bir Form içindeki nesneleri bulurken, referans başlangıç noktası olarak 0 verirseniz en baştan başlar, ancak bulduğunuz nesnenin handle nosunu verirseniz ondan sonrakileri arar.

- Dolayısı ile siz bulduğunuz Next butonunun handle'ini bir değişkene yazar, bir sonraki aynı isim ve class olan "next" butonu için referans olarak verirseniz bir dahaki NEXT butonunu bulursunuz.

1. next buttonu için
hNext_01:=FindWindowEx(hApp, 0, 'Button', '&Next >');

2. next buttonu için
hNext_02:=FindWindowEx(hApp, hNext_01, 'Button', '&Next >');

gibi.. Bu API komutunu da öğrendiğinize göre operasyon vaktidir, yolunuz açık olsun...

Başarılar.
Resim
Resim ....Resim
Cevapla