2 düğmeyi içeren, başlat ve durdur, VS 2010 tarafından oluşturulan basit bir form kullanıyorum. StartWindowsHookEx'ı kullanarak WH_MOUSE_LL tetikleyiciyi başlatır ve durdurma kancayı durdurur. Kanca gayet iyi çalışıyor ve orta fare tuşunu çift tıklatarak "değiştir" seçeneğini tıklıyorum, sahip olduğum tek sorun formun Küçült/Büyüt/Kapat düğmelerini tıklıyor, öyle görünüyor ki bir çeşit "olay yarışı" var gibi görünüyor kanca ve yukarıda belirtilen düğmeler tarafından çağrılan olaylar arasında. Bu düğmelerden birine bastığınızda, bir süre işlem yapılmadan önce “basılı tutulduğu” gerçeğini yansıtır (ör. Form en aza indirir). Formu sağ tıklattığımda ve bu eylemlerden birini seçtiğimde, hemen aynı şey yanıt verir, ben de kancayı durdurup yukarıda bahsedilen düğmelerden birine bastığımda gider. Böyle bir davranışla karşılaştı mı?C# alt düzey fare kancası ve form olay yönetimi
6
A
cevap
2
Bunu daha önce de yaşadım. Kesin nedenlerden emin değilim, ama her zaman, fare, formun, pencerenin, ne olursa olsun, müşteri alanına girdiğinde ve çıkarken ateşlenen olayları dinleyerek sorunu çözdüm. Bu olayları, fareyi kancalayıp çıkarmak için kullanabilirsin, sonra normal davranışı alırsın.
İlgili konular
- 1. . NET uygulamasında düşük düzey klavye kancası çağrılmıyor
- 2. KeyPress olay yönetimi reaJS
- 3. Çoklu klavye ve alt düzey kancalar
- 4. C#: Klavye Kancası
- 5. Farklı sınıflardaki nesneler arasındaki olay yönetimi
- 6. Anahtar Yönetimi: Kamu/Alt tuşu
- 7. Fare hareketleri C# form uygulaması nasıl alınır? Fare hareketleri C# formu uygulaması nasıl yakalanır
- 8. Phabricator kancası ve Bitbucket
- 9. Angular js ile Select2 olay yönetimi
- 10. C# Ekranda belirli bir fare konumunda bir form nasıl gösterilecek?
- 11. C# ile fare kullanarak şekilleri çizmek ve hareket ettirin # C#
- 12. C# Oturum yönetimi
- 13. C# dosya yönetimi
- 14. özel yükleme kancası ve rpmbuild
- 15. Form giriş geçmişi olay seç
- 16. Git depolarında bağımlılık yönetimi (alt modüller kullanarak)
- 17. Java'da Form yükleme olay işleyicisi nedir?
- 18. C# XNA Fare Konumu
- 19. Lambda İfadeleri ve Bellek Yönetimi
- 20. TListView ve fare tekerleği kaydırma
- 21. TPL ve İstisna Yönetimi
- 22. Bellek yönetimi ve gerçekleştirmeSelectorInBackground:
- 23. C# Form Formundaki Form Formları
- 24. C# - Şeffaf Form
- 25. HTML Olay İşleyicisi ile DOM Düzey 0 Olayı Arasındaki Fark
- 26. X, Y Koordinatlarındaki Fare İmlecini Nasıl Ayarlayabilirim, Sol Fare Tıkla Ve Sola Kaydır, Sağ, Üst, Alt
- 27. C# Özellik Adlandırılmış Olay
- 28. Meşgul simgeli fare yapın (C#)
- 29. Doküman Yönetimi/İçerik Yönetimi Arayış
- 30. C++ kapsayıcılar tasarlama ve liste geri dönüşü yönetimi
İlk içgüdüm muhtemelen iş için yanlış bir araç kullanıyor olmanızdır - Windows kancası kullanmanız gerektiğinde pek çok durumu düşünemiyorum. Belki de bu çözümü uygulamanıza yol açan sorunlara geri dönüp bununla ilgili bir soru gönderebilseydiniz? –
Merhaba, bildiğim kadarıyla bu yönteme yaklaşmadan önce bir araştırma yaptım ve eğer farenin orta tuşunu tıkladığımda çift tıklama yapmak istediğimde farenin orta tuşunu tıklatıp tıklatıp ortadaki iki tıklamayı simüle etmek farenin x, y ve benim app bile çalışmak istiyorum. odakta veya simge durumuna küçültülmüş (veya sistem tepsisinde) kanca tek yoldur. Herhangi bir şekilde daha fazla c/C++ programcısı Ben sadece C# kullanmak istedim çünkü bir GUI oluşturmanın basitliği. – Alex
@Alex - Araştırmanız sizi yanlış sonuca götürüyor. Sadece orta fare tuşunu yakalayın ve aynı olayı çift tıklama fare olayı olarak yapın (gerçekten sadece tek bir tıklama olayıdır). Ayrıca tüm fareler orta fare düğmesine sahip değil, bu yüzden dikkatli ol. –