2010-08-16 19 views
5

Fare veya klavye etkinliğinin ne zaman olduğunu tespit etmem gerekiyor. Uygulamam arka planda (tepsi) çalışıyor ve uygulamamın odakta olmadığı zamanlarda bile bu etkinliği tespit etmem gerekiyor.Java Klavye/Fare etkinliği (benim uygulamamın dışında bile)

Hangi tuşlara basıldığını bilmem ama sadece BUNLAR.

Bunu sadece Java ile yapabilir miyim? JNI ve C++/C kullanarak bazı çözümler okudum ama onlar OS özgü görünüyor. Windows, Linux ve Mac ile çalışacak bunun için kolay bir çözüm var mı?

Teşekkürler! OS özel API'ler relys JNI'yı gerekli olduğundan

+1

Bu tür şeyler için

, ille platforma özeldir. –

+0

OK GÜNCELLEME: Windows (jintellitype) ve linux (jxgrabkey) için bir kütüphane buldum. MAC OSX için bir tanesini bilen var mı? –

+0

Muhtemelen bunun için iyi bir cevap alacağınız bir soru olmayacağını söyleyeceğim. Özünde programınızın bir anahtar kaydedici gibi davranmasını istersiniz ve bunlar genellikle kendilerini çekirdeğe asarlar. Java bunu yapma gücüne sahip değil, bu yüzden şansın yok. –

cevap

3

, tek yol için desteklenen her OS için bir uygulama var olmak ve size başvuruda OS tespit sonrasında dinamik olarak yüklemek istiyorum. Farklı işletim platformları farklı şekillerde bu özelliği yer alırken, bazı konfigürasyonlar hatta hiç teklif olmayabilir çünkü Windows'un Java Global Keyboard/Mouse Hook – JNI

+0

Jotschi'nin (Klavye/Mouse Hook'un orijinal yazarı) izni ile yıllar önce kütüphanesini aldım ve yeni bir versiyon oluşturdum. En son sürümü ve örnekleri [GitHub] 'da bulabilirsiniz (https://github.com/kristian/system-hook). Kütüphanenin [blog yazısı] üzerindeki bir açıklamasının yanı sıra (http://kra.lc/blog/2016/02/java-global-system-hook/). –

İlgili konular