Est-il possible de faire un Hook pour intercepter une touche précise du
clavier ?
Je voudrais "reveiller" mon appli lorsque l'utilisateur appuie sur une
touche "Fnum".
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pasturel Jean-Louis
Phildes a écrit:
Est-il possible de faire un Hook pour intercepter une touche précise du clavier ? Je voudrais "reveiller" mon appli lorsque l'utilisateur appuie sur une touche "Fnum".
Merci
Ayant été confronté à ce pb, je peux te répondre.
Il y a deux cas : 1) ton application java a une interface graphique ( swing/ awt) *et* tu es sûr que ton application a toujours le focus sur ton écran : là c'est du classique pure Java avec KeyListener. 2) Ton application n'a pas d'interface graphique *ou* n'est pas toujours en Foreground, là tu es obligé de passer par le mécanisme d'extension Java Native Interface et de te servir des bibliothèques OS propriétaires.
Si ton OS est Windows la fonction Win32 qur tu peux utiliser pour ton interface JNI est GetAsyncKeyState (Voir Doc sur MSDN) ou recherche sous google avec le mot clé keylogger . La fonction retourne un nombre si la touche vient d'etre appuyée, il faut donc jongler avec une boucle sur l'état des touches claviers et les threads java.
Phildes a écrit:
Est-il possible de faire un Hook pour intercepter une touche précise du
clavier ?
Je voudrais "reveiller" mon appli lorsque l'utilisateur appuie sur une
touche "Fnum".
Merci
Ayant été confronté à ce pb, je peux te répondre.
Il y a deux cas :
1) ton application java a une interface graphique ( swing/ awt) *et* tu
es sûr que ton application a toujours le focus sur ton écran : là c'est
du classique pure Java avec KeyListener.
2) Ton application n'a pas d'interface graphique *ou* n'est pas toujours
en Foreground, là tu es obligé de passer par le mécanisme d'extension
Java Native Interface et de te servir des bibliothèques OS propriétaires.
Si ton OS est Windows la fonction Win32 qur tu peux utiliser pour ton
interface JNI est GetAsyncKeyState (Voir Doc sur MSDN) ou recherche
sous google avec le mot clé keylogger .
La fonction retourne un nombre si la touche vient d'etre appuyée, il
faut donc jongler avec une boucle sur l'état des touches claviers et les
threads java.
Est-il possible de faire un Hook pour intercepter une touche précise du clavier ? Je voudrais "reveiller" mon appli lorsque l'utilisateur appuie sur une touche "Fnum".
Merci
Ayant été confronté à ce pb, je peux te répondre.
Il y a deux cas : 1) ton application java a une interface graphique ( swing/ awt) *et* tu es sûr que ton application a toujours le focus sur ton écran : là c'est du classique pure Java avec KeyListener. 2) Ton application n'a pas d'interface graphique *ou* n'est pas toujours en Foreground, là tu es obligé de passer par le mécanisme d'extension Java Native Interface et de te servir des bibliothèques OS propriétaires.
Si ton OS est Windows la fonction Win32 qur tu peux utiliser pour ton interface JNI est GetAsyncKeyState (Voir Doc sur MSDN) ou recherche sous google avec le mot clé keylogger . La fonction retourne un nombre si la touche vient d'etre appuyée, il faut donc jongler avec une boucle sur l'état des touches claviers et les threads java.
Phildes
bibliothèques OS propriétaires Hooo ! Je vais faire avec.
Merci pour ces explications très claires.
Phildes
"Pasturel Jean-Louis" a écrit dans le message de news: c1q5a7$mrm$
Phildes a écrit:
Est-il possible de faire un Hook pour intercepter une touche précise du clavier ? Je voudrais "reveiller" mon appli lorsque l'utilisateur appuie sur une touche "Fnum".
Merci
Ayant été confronté à ce pb, je peux te répondre.
Il y a deux cas : 1) ton application java a une interface graphique ( swing/ awt) *et* tu es sûr que ton application a toujours le focus sur ton écran : là c'est du classique pure Java avec KeyListener. 2) Ton application n'a pas d'interface graphique *ou* n'est pas toujours en Foreground, là tu es obligé de passer par le mécanisme d'extension Java Native Interface et de te servir des bibliothèques OS propriétaires.
Si ton OS est Windows la fonction Win32 qur tu peux utiliser pour ton interface JNI est GetAsyncKeyState (Voir Doc sur MSDN) ou recherche sous google avec le mot clé keylogger . La fonction retourne un nombre si la touche vient d'etre appuyée, il faut donc jongler avec une boucle sur l'état des touches claviers et les threads java.
bibliothèques OS propriétaires
Hooo ! Je vais faire avec.
Merci pour ces explications très claires.
Phildes
"Pasturel Jean-Louis" <pastjl.jl@wanadoo.fr> a écrit dans le message de
news: c1q5a7$mrm$1@news-reader1.wanadoo.fr...
Phildes a écrit:
Est-il possible de faire un Hook pour intercepter une touche précise du
clavier ?
Je voudrais "reveiller" mon appli lorsque l'utilisateur appuie sur une
touche "Fnum".
Merci
Ayant été confronté à ce pb, je peux te répondre.
Il y a deux cas :
1) ton application java a une interface graphique ( swing/ awt) *et* tu
es sûr que ton application a toujours le focus sur ton écran : là c'est
du classique pure Java avec KeyListener.
2) Ton application n'a pas d'interface graphique *ou* n'est pas toujours
en Foreground, là tu es obligé de passer par le mécanisme d'extension
Java Native Interface et de te servir des bibliothèques OS propriétaires.
Si ton OS est Windows la fonction Win32 qur tu peux utiliser pour ton
interface JNI est GetAsyncKeyState (Voir Doc sur MSDN) ou recherche
sous google avec le mot clé keylogger .
La fonction retourne un nombre si la touche vient d'etre appuyée, il
faut donc jongler avec une boucle sur l'état des touches claviers et les
threads java.
bibliothèques OS propriétaires Hooo ! Je vais faire avec.
Merci pour ces explications très claires.
Phildes
"Pasturel Jean-Louis" a écrit dans le message de news: c1q5a7$mrm$
Phildes a écrit:
Est-il possible de faire un Hook pour intercepter une touche précise du clavier ? Je voudrais "reveiller" mon appli lorsque l'utilisateur appuie sur une touche "Fnum".
Merci
Ayant été confronté à ce pb, je peux te répondre.
Il y a deux cas : 1) ton application java a une interface graphique ( swing/ awt) *et* tu es sûr que ton application a toujours le focus sur ton écran : là c'est du classique pure Java avec KeyListener. 2) Ton application n'a pas d'interface graphique *ou* n'est pas toujours en Foreground, là tu es obligé de passer par le mécanisme d'extension Java Native Interface et de te servir des bibliothèques OS propriétaires.
Si ton OS est Windows la fonction Win32 qur tu peux utiliser pour ton interface JNI est GetAsyncKeyState (Voir Doc sur MSDN) ou recherche sous google avec le mot clé keylogger . La fonction retourne un nombre si la touche vient d'etre appuyée, il faut donc jongler avec une boucle sur l'état des touches claviers et les threads java.
TestMan
Phildes a écrit:
Est-il possible de faire un Hook pour intercepter une touche précise du clavier ? Je voudrais "reveiller" mon appli lorsque l'utilisateur appuie sur une touche "Fnum".
Pour simplifier ton TAF et t'eviter de coder du C/C++ Tu peux tutiliser des API style Jawin (http://sourceforge.net/projects/jawinproject/) ou xFunction (http://www.excelsior-usa.com/xfunction.html)
Ça marche nicket et evite les prises tête ! À noter que si tu met du code natif je te conseille de "cantonner" ton code natif dans des classes dont l'execution n'est pas indispensable.
Dans ton cas si les classent échouent bien sur l'appli sera moins "ergonomique" mais inutile d'interdir à l'utilisateur de pouvoir s'en servir. Il faut donc, correctement gérer les exceptions qui penvent survenir si on lance l'appli sur un autre OS (ne disposant pas des API que tu utilises). Pas tres compliqué, mais faut y penser ;-)
A+ TM
Phildes a écrit:
Est-il possible de faire un Hook pour intercepter une touche précise du
clavier ?
Je voudrais "reveiller" mon appli lorsque l'utilisateur appuie sur une
touche "Fnum".
Pour simplifier ton TAF et t'eviter de coder du C/C++ Tu peux tutiliser
des API style Jawin (http://sourceforge.net/projects/jawinproject/) ou
xFunction (http://www.excelsior-usa.com/xfunction.html)
Ça marche nicket et evite les prises tête !
À noter que si tu met du code natif je te conseille de "cantonner" ton
code natif dans des classes dont l'execution n'est pas indispensable.
Dans ton cas si les classent échouent bien sur l'appli sera moins
"ergonomique" mais inutile d'interdir à l'utilisateur de pouvoir s'en
servir. Il faut donc, correctement gérer les exceptions qui penvent
survenir si on lance l'appli sur un autre OS (ne disposant pas des API
que tu utilises). Pas tres compliqué, mais faut y penser ;-)
Est-il possible de faire un Hook pour intercepter une touche précise du clavier ? Je voudrais "reveiller" mon appli lorsque l'utilisateur appuie sur une touche "Fnum".
Pour simplifier ton TAF et t'eviter de coder du C/C++ Tu peux tutiliser des API style Jawin (http://sourceforge.net/projects/jawinproject/) ou xFunction (http://www.excelsior-usa.com/xfunction.html)
Ça marche nicket et evite les prises tête ! À noter que si tu met du code natif je te conseille de "cantonner" ton code natif dans des classes dont l'execution n'est pas indispensable.
Dans ton cas si les classent échouent bien sur l'appli sera moins "ergonomique" mais inutile d'interdir à l'utilisateur de pouvoir s'en servir. Il faut donc, correctement gérer les exceptions qui penvent survenir si on lance l'appli sur un autre OS (ne disposant pas des API que tu utilises). Pas tres compliqué, mais faut y penser ;-)