J’essaie de créer un clavier virtuel, qui simule le clavier à l’aide de la méthode SendInput, comme suit:
public static void SendKeyDown(System.Windows.Forms.Keys key) { INPUT k = new INPUT(); k.type = (int)InputType.INPUT_KEYBOARD; k.ki.wVk = (short)key; k.ki.dwFlags = (int)KEYEVENTF.KEYDOWN; k.ki.dwExtraInfo = GetMessageExtraInfo(); SendInput(1, new INPUT[] { k }, Marshal.SizeOf(k)); }
Mais je ne trouve pas les lettres scandinaves Ä, Ö et Å des clés – énumération. Comment puis-je envoyer ces lettres en utilisant la méthode SendInput?
Vous pouvez envoyer des caractères Unicode à l’aide de KEYEVENTF_UNICODE
.
k.type = (int)InputType.INPUT_KEYBOARD; k.ki.wScan = 'ö'; k.ki.wVk = 0; k.ki.dwFlags = (int)KEYEVENTF.UNICODE | (int)KEYEVENTF.KEYDOWN; k.ki.dwExtraInfo = GetMessageExtraInfo();
Ceci est plus portable que votre solution Oem3
utiliser Oem3
et autres, dont le caractère atsortingbué varierait en fonction de la culture de la plate-forme sur laquelle votre application est exécutée.
(Les autres signatures P / Invoke se trouvent dans mon autre réponse .)
J’ai trouvé la solution moi-même:
Oem3 = ö, Oem7 = ä, Oem6 = å