I've recently been using the SendKeys function using Batch script.
I've understood how to input certain keys into a window, such as the tab key:
%SendKeys% "{TAB}"
Or the backspace key:
%SendKeys% "{BACKSPACE}"
But I have been trying to input the Windows key without pressing it.
Unfortunately, I do not know what the batch name for it is.
I've tried:
WIN
WINDOWS
WINKEY
START
LWIN
But none have worked.
I've looked everywhere for this, and help would be greatly appreciated.
There is currently no way to simulate the windows home logo in sendkey's, howevery this does not mean it's not possible.
If you take a look at the windows shortcut keys you will find you can simulate Open Start with the following key combinations: Ctrl + Esc.
To simulate this in batch, you can use: powershell -c "$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys('^{ESCAPE}')
or in your case: %SendKeys% "^{ESCAPE}"
.
As stated in sendkeys:
- "^" - Simulates a Ctrl key press.
- "{ESCAPE}" - Simulates a Esc key press.
You can make a program to simulate winkey being pressed.
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
Place on your desktop.
Open a command prompt and type
C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc "%userprofile%\desktop\Win+R.vb" /out:"%userprofile%\Desktop\Win+R.exe" /target:winexe
A file called Win+R.exe will appear on your desktop. Move it anywhere into the path.