PostMessage, SendMessage kullanarak programlara bilgi göndermeye çalışıyorum. a,b,2,3 gibi tuşları sorunsuz gönderiyor ama yön tuşlarını(yukarı, aşağı, sağa, sola) gönderirken sorun yaşıyorum. Bu dört tuşun bilgisini gönderince sürekliliği oluyor. Örneğin yukarı bilgisini gönderince sürekli yukarı işliyor 1 defa ilerleyip bırakmıyor. Bu konu hakkında bilgisi olanlar yardımcı olabilir mi? Bu iki yöntemi kullanma sebebim gönderdiğim program en üstte olması gerekmiyor. Farklı modüller hep üstte olmasını istiyor.
WM_KEYUP denemiştim onda hiç tepki vermiyor program. Hatta win32con içerigini sıralttım onlardan denedim ama istediğimi bulamadim. Bunun dışında farkli moduller var acık ekranda tusa basmamı sağlıyor onları PostMessage içinde kullandım belki çalışır deye ama bu defa programa bilgi göndermeyip konsolda tuşa bastı.
Aslında burda sondaki 0 galiba bilginin kaç defa gönderileceğini gösteriyor ama surekliliğine anlam veremedim. Diğer tuşlar düzgün çalışırken sadece yön tuşlarında oluyor. İki farklı yerde denedim aynı oldu ikisinde de.
Öncelikle PostMessage ve SendMessage arasında fark olduğunu bilmek lazım. PostMessage ile gönderdiğiniz mesajlar hemen işlenmez, program onu kuyruktan alana kadar bekler. Ancak SendMessage ile gönderdiğiniz mesajlar hemen işlenir.
Diğer kısım, PostMessage fonksiyonuna verdiğiniz parametreler. Şu sayfadan, hangi parametreleri aldığını ve ne işe yaradığını görebilirsiniz. Buna göre, son parametre mesajın kaç kere gönderileceğiyle ilgili değildir.
Nasıl bir programa mesaj gönderdiğinizi bilmiyorum, ama bir de SendInput fonksiyonuna bakın isterseniz
Öncelikle bilgiler için teşekkür ederim. PostMessage ve SendMessage arasındaki farkı gerçekten bilmiyordum. PostMessage kullanıyordum şuan SendMessage kullanmaya başladım. Bide bu fonksiyonlar parametrelerine öncede bakmıştım ama tam ne işe yaradını anlamamıştım WPARAM, LPARAM kımını. Şuan daha da bilmiyorum. Bu konuda bilgi verebilir misiniz? SendInput fonksiyonuna baktım denemedim oda konsolda çalıştı bilgiyi programa gönderemedi. Son olarak win32con.WM_KEYDOWN ve win32con.WM_KEYUP bu ikisi tam olarak ne işe ve ne gibi durumlarda kullanıyor? Bu konuda da bilgi verebilir misiniz? İlk sorduğum soruyu çözdüm ama deneme yanılma yoluyla yaptım. Bunları sorma nedenim de ne yaptığımı bilerek yapmak isteğim için.
Ben sizden bu şekilde tuş göndermenizi istemiştim. Yani WM_KEYDOWN ile tuşun basıldığı mesajını, WM_KEYUP ile tuşun serbest bırakıldığı mesajını gönderdiğiniz için çalışıyor.
Ve 0x28 kodu da VK_DOWN tuşunun kodudur.
edit: Kusura bakmayın, WPARAM LPARAM hakkında bilgi vermeyi unuttum. Bu iki parametre, mesajlar hakkında ek bilgiler göndermek için kullanılır. Mesela hangi tuşun basıldığı, hangi tuşlarla birlikte basıldığı(CTRL,ALT vs) bu iki parametre ile birlikte gönderilir.
Bu konuyla ilgili çözemediğim bir durum daha oldu. Ctrl + Alt + Delete gibi bilgi göndermesini bir türlü yapamadım. Çok fazla konuya da baktım ama çalışan bir şey bulamadım yada ben anlayamadım. Bu konuda bilgisi olanlar yardımcı olabilir mi?
Bu kombinasyon biraz ayrıcalıklı bir kombinasyon, çünkü seni logout edebilecek bir kombinasyon. Doğal olarak windows bir yetki kontrolü yapmadan doğrudan bu kombinasyonu simüle etmene izinvermeyecektir.
Aslında bu konuda çok sayıda açıklama sayfasına ulaştım. Soru güzel sonuçta.
Biraz deneyeyim. Benim asıl amacım 3 sayısındaki üçüncü karaktere yani # (hash) ulaşmaya çalışıyorum. “keybd_event” kullandığımda normalde o tuşa basıyor ama o anki aktif pencerede tuşa basıyor. Bu arada bilgiler için sağol.
Burada yazanları biraz uyarlamaya çalıştım ama bir türlü çalışmıyor. Amacım ctrl + alt + 3 (# hash ) tuşuna ulaşmak. Bu konuda biraz daha bilgi verebilir misiniz? Hash nasıl ulaşabilirim?