donc, je suppose que je dois le faire en C++, quelqu'un est au courant de ce problème? je recherche déjà partout et j'ai trouvé quelques articles sur le crochet de clavier sur windows ce, windows mobile est ce windows, n'est ce pas? une autre question: quel compilateur gratuit, ide pour Windows Mobile je pourrais utiliser?crochet clavier global dans Windows Mobile 5 ou supérieur (plate-forme smartphone), comment?
Répondre
SetWindowsHookEx n'est pris en charge sur aucune version de WindowsCE (lire: Mobile). Les hameçons en général ne sont pas supportés, en fait. Toutefois, si vous souhaitez utiliser des API sans support/non documentées, vous pouvez extraire SetWindowsHookEx de coredll.dll et l'appeler comme vous le feriez sur Windows. Vous voulez WH_KEYBOARD_LL, qui dit est 20.
un peu googler Vous aurez réellement besoin de sortir des pointeurs vers les méthodes suivantes: SetWindowsHookEx, CallNextHookEx et UnhookWindowsHookEx.
Votre code ressemblera à (ce qui est non testé):
//myHook.dll
LRESULT myLowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
//You'll need to pull a reference to CallNextHookEx out of coredll as well
if(nCode < 0) return CallNextHookEx(nCode, wParam, lParam);
KBDLLHOOKSTRUCT data = *((PKBDLLHOOKSTRUCT)lParam);
//Do something with data
return CallNextHookEx(nCode, wParam, lParam);
}
//Main Code, which ignores all the nasty function pointers you'd ACTUALLY have to use to do this
...
HHOOK hook = SetWindowsHookEx(WH_KEYBOARD_LL, pMyLowLevelKeyboardProc, hMyHookDll, 0);
...
//Some point in the future
UnhookWindowsHookEx(hook);
Je suggère fortement contre cette cependant. Je doute beaucoup que ce code continuera à fonctionner pour toutes les futures versions de Windows Mobile. Envisager une autre façon de réaliser tout ce que vous êtes réellement après.
Je ne peux pas dire que j'ai des recommandations pour les compilateurs gratuits ou IDE. Tout autre que Visual Studio pour C/C++ me cause toujours beaucoup de frustration. Je pense que c'est plus un reflet de mes habitudes qu'un commentaire sur d'autres outils.
http://www.naresh.se/2009/09/08/getkeyboardstate-mousehooks-not-available-in-windows-mobile/
Suivez l'URL ci-dessus. Il a le code requis pour fonctionner sur Windows Mobile et Windows CE et a aussi une bonne explication ainsi qu'un forum pour discuter plus en avant sur ...
Oublié de dire que le code est en C# comme requis par d'autres utilisateurs ...
puis-je utiliser ceci avec C# et appel dll natif? – StoneHeart
Sur le bureau, il est possible d'installer des hooks WH_KEYBOARD_LL en utilisant du code managé pur. Vous devrez expérimenter pour voir si la même chose est vraie pour Windows Mobile. Mes exemples sont en C, car ils sont les «plus susceptibles» de travailler; comme indiqué, il s'agit d'une opération non prise en charge. –
je fais un outil sur Windows Mobile, il peut fonctionner en arrière-plan et la clé de capture que l'utilisateur a pressé (dans le monde entier), alors je peux le faire en C#? – StoneHeart