2014-10-25 15 views
9

Quindi ho bisogno di jnativehook per rilevare quando una copia/incolla è preformata come un'applicazione di copia/incolla di backup, e poiché si tratta di un'applicazione console non voglio che venga spammata dalla posizione del cursore e dalle sequenze di tasti, ho solo bisogno di sedermi Lontano e ascolta per copia/incolla. Ma invece sta succedendoJNativeHook come si evita di stampare tutto ciò che accade?

Oct 25, 2014 10:21:54 AM org.jnativehook 
INFO: hook_event_proc [405]: Mouse moved to 3468, 829. 

Oct 25, 2014 10:21:54 AM org.jnativehook 
INFO: hook_event_proc [405]: Mouse moved to 3468, 828. 

Oct 25, 2014 10:21:54 AM org.jnativehook 
INFO: hook_event_proc [405]: Mouse moved to 3467, 827. 

Oct 25, 2014 10:21:54 AM org.jnativehook 
INFO: hook_event_proc [405]: Mouse moved to 3467, 826. 

Oct 25, 2014 10:21:54 AM org.jnativehook 
INFO: hook_event_proc [405]: Mouse moved to 3467, 825. 

Oct 25, 2014 10:21:55 AM org.jnativehook 
INFO: hook_get_multi_click_time [218]: XtGetMultiClickTime: 200. 

Oct 25, 2014 10:21:55 AM org.jnativehook 
INFO: hook_event_proc [290]: Button 1 pressed 1 time(s). (3467, 825) 

Oct 25, 2014 10:21:55 AM org.jnativehook 
INFO: hook_event_proc [358]: Button 1 released 1 time(s). (3467, 825) 

Oct 25, 2014 10:21:55 AM org.jnativehook 
INFO: hook_event_proc [372]: Button 1 clicked 1 time(s). (3467, 825) 

C'è un modo per disattivarlo? Ho la registrazione di base di Native Hook e la rilevazione di errori, nonché i tre eventi di ascolto vuoti.

try { 
      GlobalScreen.registerNativeHook(); 
     } catch (NativeHookException n) { 

      System.err.println("JNativeHook could not be registered"); 
      System.err.println(n.getMessage()); 
      System.exit(1); 
     } 

     GlobalScreen.getInstance().addNativeKeyListener(new Main()); 

risposta

4

... leggendo il documentation. JNativeHook utilizza java.util.logging per l'output della console. Si noti che non è possibile disabilitare il copyright tramite il logger in base alla progettazione.

+0

In un primo momento: grazie per la tua lib, è fantastico! (Ma ho anche supervisionato la documentazione - forse puoi farvi riferimento in modo più esplicito :)) –

+0

Yah, ho davvero bisogno di rifare le pagine Wiki. È sul mio elenco TODO insieme a 2.0.3. PS il testo del copyright è stato rimosso anche dalla versione 2.0.3. –

+0

Grazie per la risposta, è bello, ho trovato i tuoi (vecchi) documenti su Google Archive, con loro finalmente ho il mio piccolo gestore di appunti che funziona. :) Btw: è in esecuzione in JavaFX 2.0. La distribuzione/compilazione è stata un po 'complicata - usando Maven non è stato spedito un exe/jar - ma spostando la tua lib nella "directory di output estratto" (può essere impostata nella configurazione degli artefatti in IntelliJ), tutto funziona come un incantesimo. Quindi grazie mille per questo capolavoro! Consiglio vivamente il tuo lavoro. :) Hai qualche consiglio per me come ottenere una presentazione in "jni" e nella programmazione nativa? Voglio avere più familiarità con esso. –

10

Dalla wiki di utilizzo sul github JNativeHook.

// Cancella le configurazioni di registrazione precedenti.
LogManager.getLogManager(). Reset();

// Ottieni il logger per "org.jnativehook" e imposta il livello su off.
Logger logger = Logger.getLogger (GlobalScreen.class.getPackage(). GetName());
logger.setLevel (Level.OFF);

L'aggiunta di queste righe di codice al costruttore dell'oggetto principale, ad esempio, manterrebbe la quasi totale registrazione da visualizzare nella console. Questo, tuttavia, si applica solo alla versione 1.2 di JNativeHook (la più recente).

C'è anche un'opzione per visualizzare solo gli avvisi e gli errori pure.

+0

FWIW Ecco il codice sopra in Kotlin. '// Cancella la registrazione precedente configurations.' ' LogManager.getLogManager(). Reset() '' // Prendi il logger per "org.jnativehook" e impostare il livello di off.' 'val logger = Logger .getLogger (GlobalScreen :: class.java. \ 'pacchetto \' .name) ' ' logger.level = Level.OFF' – ATutorMe

Problemi correlati