2016-07-25 8 views
0

J'ai un appareil Windows Mobile 6.5 (Honeywell) en combinaison avec SOTI. Ce que j'ai besoin de mettre en œuvre, c'est que, si l'appareil a un statut akku < 10 pour cent, il devrait s'éteindre. C'est la partie que je peux faire avec SOTI.Comment envoyer une combinaison de touches/Windows Mobile 6.5

Avant cet arrêt, je dois envoyer la clé F12 cinq fois. Comment puis-je réaliser cela? Je sais qu'il y a un code-clé virtuel (https://msdn.microsoft.com/en-us/library/ms927178.aspx) mais je ne sais pas, comment les déclencher.

Répondre

1

Vous pouvez utiliser la fonction keybd_event

keybd_event(VK_F12, 0, 0, 0); 
    keybd_event(VK_F12, 0, KEYEVENTF_KEYUP, 0); 

Pour utiliser que de .NET voir pinvoke

using System.Runtime.InteropServices; 
    ... 
    public const uint KEYEVENTF_KEYUP = 2; 

    [DllImport("coredll.dll", EntryPoint = "keybd_event", SetLastError = true)] 
    public static extern void keybd_event 
    (
     byte bVk, 
     byte bScan, 
     int dwFlags, 
     int dwExtraInfo 
    ); 

Toujours utiliser deux appels avec la même valeur de clé, un pour dwon clé et une avec KEYEVENTF_KEYUP .

Le bScan pour le code de balayage peut normalement être 0 ou vous devez rechercher les codes de balayage du clavier PS/2 pour la clé que vous envoyez.

+0

Merci pour votre réponse! Dois-je utiliser des cadres pour cela? Ou puis-je simplement le coller dans un fichier de script? – user896692

+0

Cela dépend: si C/C++ pas de travail supplémentaire nécessaire; si .NET vous devez pinvoke keybd_event – josef