2012-12-11 3 views
-1

Comment simuler Ctrl + Alt + H en utilisant keybd_event()? Le code suivant, ne fonctionne pas:Comment puis-je simuler Ctrl + Alt + H en utilisant keybd_event dans C winforms

keybd_event((byte)Convert.ToInt32(Keys.Control), (byte)MapVirtualKey(Convert.ToInt32(Keys.Control), 0), 0, 0); 
     keybd_event((byte)Convert.ToInt32(Keys.Alt), (byte)MapVirtualKey(Convert.ToInt32(Keys.Alt), 0), 0, 0); 
     keybd_event((byte)Keys.H, (byte)MapVirtualKey(Convert.ToInt32(Keys.H), 0), 0, 0); 
     keybd_event((byte)Keys.H, (byte)MapVirtualKey(Convert.ToInt32(Keys.H), 0), KEYEVENTF_KEYUP, 0); 
     keybd_event((byte)Convert.ToInt32(Keys.Alt), (byte)MapVirtualKey(Convert.ToInt32(Keys.Alt), 0), KEYEVENTF_KEYUP, 0); 
     keybd_event((byte)Convert.ToInt32(Keys.Control), (byte)MapVirtualKey(Convert.ToInt32(Keys.Control), 0), KEYEVENTF_KEYUP, 0); 
+0

avez-vous google et n'a pas trouvé de réponse ?! – Arash

+0

'winform' ou' wpf'? – Arash

+0

"ne fonctionne pas" peut signifier beaucoup de choses par ex. (rien ne s'est passé, exception, la mauvaise chose s'est produite, des choses aléatoires se produisent, etc) Pouvez-vous s'il vous plaît être précis –

Répondre

0

Vous pouvez utiliser SendKeys pour ce faire:

SendKeys.Send("^%H"); 

http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.aspx

EDIT (Voir les commentaires ci-dessous ...)

Vous souhaitez lancer un raccourci Windows sur votre bureau que vous avez configuré avec un ensemble spécifique de raccourcis clavier. Dans ce cas, CTRL + ALT + H. Vous voulez écrire une application qui exécutera cette combinaison de touches de raccourci.

Pour que cela fonctionne, votre ordinateur de bureau devra être "focusé". Cela signifie qu'aucune autre fenêtre ne devrait être en place. Alors, démarrez votre application, réduisez toutes les autres fenêtres, puis appuyez sur le bouton de votre application. Voici le code que vous devriez avoir derrière votre bouton:

private void button1_Click(object sender, EventArgs e) 
    { 
     this.WindowState = FormWindowState.Minimized; 
     SendKeys.SendWait("^%h"); 
    } 

Cela minimisera la fenêtre actuelle et donnera ainsi plus de focus à votre bureau. Il enverra ensuite les touches CTRL et ALT et H au bureau qui lancera votre raccourci.

+0

j'ai essayé cela, et rien ne se passe .... Je pense que quelque chose ne va pas ... Voici mon code: –

+0

http://pastebin.com/sa1FCxiR –

+0

Le code que vous avez posté enverra le les clés de ce formulaire (celui où vous avez appuyé sur le bouton) est-ce prévu? Si vous voulez envoyer les clés à une autre fenêtre, alors la fenêtre/le formulaire que vous voulez recevoir les clés devra être actif et le plus à l'avant. – jmrnet

Questions connexes