web-dev-qa-db-fra.com

Envoyer la clé Windows dans un script batch

J'ai récemment utilisé la fonction SendKeys en utilisant le script Batch.

J'ai compris comment saisir certaines touches dans une fenêtre, comme la touche de tabulation:

%SendKeys% "{TAB}"

Ou la touche de retour arrière:

%SendKeys% "{BACKSPACE}"

Mais j'ai essayé d'entrer la touche Windows sans appuyer dessus.

Malheureusement, je ne sais pas quel est le nom du lot. J'ai essayé:

WIN
WINDOWS
WINKEY
START
LWIN

Mais aucun n'a fonctionné.

J'ai cherché partout cela et l'aide serait grandement appréciée.

5
Zeke Young

Il n'y a actuellement aucun moyen de simuler le logo home windows dans sendkey's , cependant cela ne signifie pas que ce n'est pas possible.

Si vous regardez les touches de raccourci Windows , vous constaterez que vous pouvez simuler Ouvrir Démarrer avec les combinaisons de touches suivantes: CtrlEsc.

Pour simuler cela en batch, vous pouvez utiliser: powershell -c "$wshell = New-Object -ComObject wscript.Shell; $wshell.SendKeys('^{ESCAPE}') ou dans votre cas: %SendKeys% "^{ESCAPE}".

Comme indiqué dans sendkeys:

  • " ^ " - Simule un Ctrl appuyez sur la touche.
  • " {ESCAPE} " - Simule un Esc appuyez sur la touche.
3
John Kens

Vous pouvez créer un programme pour simuler Winkey pressé.

WinKey + R.VB

Imports System.Runtime.InteropServices
Imports System.Windows.Forms

Public Module SendWinKey

    Const KEYEVENTF_KEYDOWN As Integer = &H0
    Const KEYEVENTF_KEYUP As Integer = &H2

    Declare Sub keybd_event Lib "User32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As UInteger, ByVal dwExtraInfo As UInteger)

       Public Sub Main()    
           keybd_event(CByte(Keys.LWin), 0, KEYEVENTF_KEYDOWN, 0) 'press the left Win key down
           keybd_event(CByte(Keys.R), 0, KEYEVENTF_KEYDOWN, 0) 'press the R key down
           keybd_event(CByte(Keys.R), 0, KEYEVENTF_KEYUP, 0) 'release the R key
           keybd_event(CByte(Keys.LWin), 0, KEYEVENTF_KEYUP, 0) 'release the left Win key
       End Sub
End Module

Placez-le sur votre bureau.

Ouvrez une invite de commande et tapez

C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc "%userprofile%\desktop\Win+R.vb" /out:"%userprofile%\Desktop\Win+R.exe" /target:winexe

Un fichier appelé Win + R.exe apparaîtra sur votre bureau. Déplacez-le n'importe où dans le chemin.

1
CatCat