2009-09-17 17 views
7

Fondamentalement, je veux simuler dans le code d'un utilisateur en cliquant sur le bouton Windows. Je sais qu'il y a SendKeys qui me permet d'envoyer des raccourcis clavier à Windows si je les manipule, mais ce que je n'arrive pas à comprendre, c'est ce dont j'ai besoin pour gérer les commandes des boutons Windows. Par exemple. Bouton Windows + L. Après avoir lu cela un peu, il semble que CTRL-ESC devrait également afficher le menu Démarrer, mais pas sûr de savoir comment lui dire d'envoyer les clés à Windows (si cela est même possible). Toute aide serait très appréciée.Comment appuyer sur le bouton Windows par programmation en utilisant C# SendKeys

À la votre!

Répondre

-2

Vous devez utiliser un hook de clavier global pour vous connecter aux claviers situés en dehors de votre application. Il y a un article sur comment le faire here.

+2

Incorrect. C'est seulement si vous voulez écouter des frappes, pas si vous voulez envoyer des frappes. –

9

Je ne pense pas que vous pouvez le faire en utilisant SendKeys, vous aurez besoin de p/invoquer une fonction API à la place, probablement keybd_event pour envoyer soit CTRL + ESC ou la touche Windows.

Here est un exemple d'ouverture du menu de démarrage de cette façon dans VB et here est keybd_event avec sa signature C# sur pinvoke.net.

5

Certaines choses qu'un utilisateur peut faire via un raccourci WinKey peuvent être réalisées par programmation d'autres façons. Pour prendre votre WinKey + exemple L, vous pourriez plutôt simplement utiliser la déclaration suivante:

Process.Start("rundll32.exe", "user32.dll,LockWorkStation"); 

Si vous pouvez élaborer sur vous essayez d'accomplir exactement ce que, peut-être il y a une meilleure façon que keybd_event (comme Dale a suggéré).

+0

dans votre déclaration ci-dessus, est-il possible de verrouiller un utilisateur spécifique si vous êtes dans un réseau de trois pcs par exemple? –

Questions connexes