Fare Orta Tekerleğinin Dönüşünü Algılama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Fare Orta Tekerleğinin Dönüşünü Algılama
Selam Arkadaşlar
GetAsyncKeyState komutu ile fare sol,sağ,orta tuş hareketlerini çok hızlı algılayıp gereken işlemleri yapabiliyoruz.Malesef orta tekerleğin hareketini algılatamadık. Bu arada bu komut haricinde peekmessage yahut formMouseWheel yöntemlerini denedik fakat bu yöntemler de yavaş yada tepkisiz kalabiliyorlar.
Amacımız GetAsyncKeyState komutu ile bu işi çözmek, yardımcı olursanız memnun oluruz. Saygılar.
GetAsyncKeyState komutu ile fare sol,sağ,orta tuş hareketlerini çok hızlı algılayıp gereken işlemleri yapabiliyoruz.Malesef orta tekerleğin hareketini algılatamadık. Bu arada bu komut haricinde peekmessage yahut formMouseWheel yöntemlerini denedik fakat bu yöntemler de yavaş yada tepkisiz kalabiliyorlar.
Amacımız GetAsyncKeyState komutu ile bu işi çözmek, yardımcı olursanız memnun oluruz. Saygılar.
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
Re: Fare Orta Tekerleğinin Dönüşünü Algılama
Teşekkür ederim cevabınız için Delphi XE10 da Program çalışıyor fakat hook işlem yapmıyor 

Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
Re: Fare Orta Tekerleğinin Dönüşünü Algılama
wndproc ile gelen mesajlari yakalayip parametrelerde vk_mousewheel kontrolü yapsaniz olmaz mi?
kıdemsiz üye
Re: Fare Orta Tekerleğinin Dönüşünü Algılama
İkra Hocam;
Nerdeyse denemediğimiz yöntem kalmadı. Diğer yöntemler program boştayken sorunsuz çalışıyorlar.Fakat program yüke geçtiğinde gözlemlerimize göre en hızlı ve kararlı komut GetAsyncKeyState, yapabilirsek bununla devam etmeyi düşünüyoruz.
Nerdeyse denemediğimiz yöntem kalmadı. Diğer yöntemler program boştayken sorunsuz çalışıyorlar.Fakat program yüke geçtiğinde gözlemlerimize göre en hızlı ve kararlı komut GetAsyncKeyState, yapabilirsek bununla devam etmeyi düşünüyoruz.
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
Re: Fare Orta Tekerleğinin Dönüşünü Algılama
Getasynckeystate farenin butonlarinin statusunu aliyor. Orta tekerlek icin wndproc ile gelen mesajlarin tümünü yakalayip aradan ayiklama yapmak gerekir (saniyorum).
Benim su an deneme imkanim yok fakat bence olabilitesi yüksek.
Benim su an deneme imkanim yok fakat bence olabilitesi yüksek.
kıdemsiz üye
Re: Fare Orta Tekerleğinin Dönüşünü Algılama
İkra Hocam;
İlgi ve alakanızdan ötürü teşekkür ediyorum Allah razı olsun.
Wndproc yöntemini denedim çalışıyor,fakat yoğun süren işlemlerde programın nefesinin kesildiği anlarda yanıt vermiyor. Döngü sonlandıktan sonra yanıt veriyor. Bana döngü içerisinde benim direk kontrol edebileceğim bir yöntem lazım.İnşallah bulurum
İlgi ve alakanızdan ötürü teşekkür ediyorum Allah razı olsun.
Wndproc yöntemini denedim çalışıyor,fakat yoğun süren işlemlerde programın nefesinin kesildiği anlarda yanıt vermiyor. Döngü sonlandıktan sonra yanıt veriyor. Bana döngü içerisinde benim direk kontrol edebileceğim bir yöntem lazım.İnşallah bulurum

Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
Re: Fare Orta Tekerleğinin Dönüşünü Algılama
Bunu sorgulayabilecegin bir api var mi bilmiyorum. Wndproc pencerenin mesajlarini alir ve bu mainthread icerisinde gerceklesir. Programininin mainthread'i döngü ile mesgulken gelen pencere mesajlarini islemesini mümkün kilmanin tek imkani, döngü icerisinde application.processmessages kullanmak olacaktir.
kıdemsiz üye
Re: Fare Orta Tekerleğinin Dönüşünü Algılama
application.processmessages oluyor fakat bu seferde çizim işlemlerinin oldukça yavaşlamasına sebep oluyor.
Ne hikmetse iki iyilik bi araya dek gelmiyor
Ne hikmetse iki iyilik bi araya dek gelmiyor

Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
Re: Fare Orta Tekerleğinin Dönüşünü Algılama
Merhaba..
WM_INPUT'dan gelen mesajları takibe alınca yavaşlama vs. olmaması lazım. Dinleme işlemini windows mesaj sisteminden tetiklenecektir çünkü.
- Projelerimden birinden küçük bir deneme yaptım, RAW Mouse Button mesajlarını alırken usButtonData 1024 ( hex 0x0400 ) ise orta tekerlek işlemleri olduğunu, alt record'undan da ulRawButtons değerini 120 görürsen yukarı tekerlek, 65416 görürsen aşağı tekerlek olarak gözlemledim...
Bakınız : MSDN linki
Test projesini bu mesaj ekinden deneyebilirsin.
WM_INPUT'dan gelen mesajları takibe alınca yavaşlama vs. olmaması lazım. Dinleme işlemini windows mesaj sisteminden tetiklenecektir çünkü.
- Projelerimden birinden küçük bir deneme yaptım, RAW Mouse Button mesajlarını alırken usButtonData 1024 ( hex 0x0400 ) ise orta tekerlek işlemleri olduğunu, alt record'undan da ulRawButtons değerini 120 görürsen yukarı tekerlek, 65416 görürsen aşağı tekerlek olarak gözlemledim...
Bakınız : MSDN linki
Test projesini bu mesaj ekinden deneyebilirsin.
- Dosya ekleri
-
- BirdenFazlaMouse.rar
- Mouse Test
- (184.6 KiB) 70 kere indirildi
Re: Fare Orta Tekerleğinin Dönüşünü Algılama
Zannedersem ! ben bi yerlerde hata yapıyorum.
Konu ile ilgili olarak programın akışını değiştirmem gerektiğini anlamış bulunmaktayım.
Zaman ayırıp cevap verdiğiniz için teşekkür ederim.
Konu ile ilgili olarak programın akışını değiştirmem gerektiğini anlamış bulunmaktayım.
Zaman ayırıp cevap verdiğiniz için teşekkür ederim.
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.