Lordvb
Messages postés57Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention 3 décembre 2004 3 déc. 2004 à 07:32
ok. oué donc le même pb doit se retrouver en java ? si j'ai bien compris du moins ... c'est bête pour le framework .NET :/
sinon la source est pratique :) je pense réutiliser 2 fonctions pour rentrer et sortir mon lecteur CD en fesant un clique sur un bouton merci pour les idées et BruNews pour l'information ;)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 2 déc. 2004 à 18:05
Mais y a rien a soumettre, tant que ce sera du framework ou nimporte quelle autre forme de langage interprete, ce sera impossible. Il y a separation complete des espaces memoire entre chaque processus, faudrait donc comme dit plus haut inserer une copie de virtual machine dans chaque processus, ça n'a aucun sens.
Lordvb
Messages postés57Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention 3 décembre 2004 2 déc. 2004 à 17:57
oué donc en gros ca serait une idée à soumettre pour la prochaine version du framework ... vous en pensez koi ?
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 2 déc. 2004 à 14:50
vi
un SetWindowsHookEx ne mettra le hook que pour l'appli elle même
donc là autant passer par les MessageFilter
sinon pour du hook global comme dit BruNews : code natif obligatoire
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 2 déc. 2004 à 11:15
Et moi je confirme tel que ecrit sur la page que tu cites:
"Global Hook Is Not Supported in .NET Framework".
Code NATIF doit se trouver dans une dll, hors cela point de salut.
Ben oui Crazyht, tu vois le systeme mapper tout le framework dans chaque processus ??? c'est le crash assure. N'oubliez jamais que le C# ne produit pas du code executable, il ne le devient qu'a l'execution apres passage dans le framework.
cs_Crazyht
Messages postés1522Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention21 août 20108 2 déc. 2004 à 11:01
cs_Crazyht
Messages postés1522Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention21 août 20108 2 déc. 2004 à 10:58
Brunews une Vraie ??????
Vilain va si c'est pas de l'assembleur Mr rale :)
Bon sinon sache que tu peut faire du SetWindowsHookEx en .NET.
@++
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 1 déc. 2004 à 16:16
Pour avoir 0 boucle et donc aucun temps CPU consomme inutilement, faudra mettre le code de hook clavier dans une VRAIE dll et appeler SetWindowsHookEx. Le systeme mappera ainsi une copie de la dll dans chaque processus et la fonction n'entrera en service que lorsqu'un event clavier survient. J'en ai fait plusieurs exemples sur cppfrance.
Lordvb
Messages postés57Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention 3 décembre 2004 1 déc. 2004 à 16:06
si qq1 connait une solution plus légère (BruNews ?) faudrait la mettre :) ca m'intéresse beaucoup ;)
merci pour la réponse bon programme peut être un peu artisanal mais bon :) j'en aurais jamais fait autant :)
WormkeyP
Messages postés20Date d'inscriptionsamedi 10 janvier 2004StatutMembreDernière intervention30 septembre 2010 1 déc. 2004 à 16:03
Réponse a lordvb
Oui mon programme capte les touche lorsqu'il n'a pas le focus. Par contre je ne sais pas si ca fonctionne lorsqu'un autre prog prend le clavier en mode exclusif (je pense a DirectX)
Pour l'écroulement du système, je pens qu'avec 1 appel de fonction (en moyenne) tout les 10ème de seconde on ne risque pas grand chose. Cepandand je suis d'accord qu'utiliser un évenement serait plus "propre". Mais bon je ne conais pas encore cet évenement... (Je veux éviter a tout prix d'avoir a utiliser DirectImput)
Lordvb
Messages postés57Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention 3 décembre 2004 1 déc. 2004 à 13:28
oué en gros il renvoit rien si l'utilisateur appuis pas ... enfin ce que je veux dire c'est que c'est pas la pression sur une touche qui "lance" un processus ... oué en effet ca doit bien manger en ressource si ca scanne en permanance l'état du clavier :/
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 1 déc. 2004 à 13:26
Ceci ne capte rien mais lit l'etat du clavier en boucle continue, ideal pour ecrouler les performances d'un systeme, une pure demo de ce qu'il ne faut jamais faire.
Lordvb
Messages postés57Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention 3 décembre 2004 1 déc. 2004 à 13:17
j'ai une ptite question ...
je vois que tu "captes" les touches taper au clavier, ca marche aussi quand ton prog a pas le focus ? ( ca pourrait me servir pour les impr écran dans des formats spécifiques )
3 déc. 2004 à 07:32
sinon la source est pratique :) je pense réutiliser 2 fonctions pour rentrer et sortir mon lecteur CD en fesant un clique sur un bouton merci pour les idées et BruNews pour l'information ;)
2 déc. 2004 à 18:05
2 déc. 2004 à 17:57
2 déc. 2004 à 14:50
un SetWindowsHookEx ne mettra le hook que pour l'appli elle même
donc là autant passer par les MessageFilter
sinon pour du hook global comme dit BruNews : code natif obligatoire
2 déc. 2004 à 11:15
"Global Hook Is Not Supported in .NET Framework".
Code NATIF doit se trouver dans une dll, hors cela point de salut.
Ben oui Crazyht, tu vois le systeme mapper tout le framework dans chaque processus ??? c'est le crash assure. N'oubliez jamais que le C# ne produit pas du code executable, il ne le devient qu'a l'execution apres passage dans le framework.
2 déc. 2004 à 11:01
http://support.microsoft.com/?kbid=318804
2 déc. 2004 à 10:58
Vilain va si c'est pas de l'assembleur Mr rale :)
Bon sinon sache que tu peut faire du SetWindowsHookEx en .NET.
@++
1 déc. 2004 à 16:16
1 déc. 2004 à 16:06
merci pour la réponse bon programme peut être un peu artisanal mais bon :) j'en aurais jamais fait autant :)
1 déc. 2004 à 16:03
Oui mon programme capte les touche lorsqu'il n'a pas le focus. Par contre je ne sais pas si ca fonctionne lorsqu'un autre prog prend le clavier en mode exclusif (je pense a DirectX)
Pour l'écroulement du système, je pens qu'avec 1 appel de fonction (en moyenne) tout les 10ème de seconde on ne risque pas grand chose. Cepandand je suis d'accord qu'utiliser un évenement serait plus "propre". Mais bon je ne conais pas encore cet évenement... (Je veux éviter a tout prix d'avoir a utiliser DirectImput)
1 déc. 2004 à 13:28
1 déc. 2004 à 13:26
1 déc. 2004 à 13:17
je vois que tu "captes" les touches taper au clavier, ca marche aussi quand ton prog a pas le focus ? ( ca pourrait me servir pour les impr écran dans des formats spécifiques )