SendKeys.Send et désactivation des modificateurs de clé
Question
Je souhaite que ^ N fonctionne de la même manière que la flèche vers le bas dans un contrôle d’arborescence. j'ai pensé Il me suffirait d'ajouter ce qui suit au gestionnaire KeyDown:
SendKeys.Send("{Down}");
mais cela est traité comme une flèche Contrôle-Bas puisque la touche Contrôle est actuellement pressé. La page msdn décrit comment allumer le modificateur de contrôle mais pas comment le désactiver.
Merci, Keith
La solution
Désolé de venir en retard à la fête mais je pense avoir trouvé une solution:
D'abord, importez SetKeyboardState:
[DllImport("user32.dll")]
public static extern bool SetKeyboardState(byte[] lpKeyState);
Ensuite, appelez-le simplement avec un tableau d'octets mis à zéro avant d'appeler SendKeys.Send ():
SetKeyboardState(new byte[256]);
SendKeys.Send("your key sequence");
Cela a fonctionné pour moi. J'espère que cela aide!
Autres conseils
Vous pouvez p / invoke sur keybd_event. Cela vous permettra de simuler une clé étant à la fois dans " up " et " down " état.
Voici le moyen difficile de le faire. J'admets que ce n'est pas la façon optimale de le faire. Je suis sûr que vous le savez déjà. Vous voudrez peut-être surcharger la méthode WindProc du contrôle & amp; utilisez SendMsg Win32 Api. C’est ainsi que j’avais l'habitude de faire fonctionner les choses dans la journée.