最近我一直在使用Batch脚本中的SendKeys函数。
我已经明白如何向窗口输入某些按键,例如Tab键:
%SendKeys% "{TAB}"
或者是退格键:
%SendKeys% "{BACKSPACE}"
我一直在尝试在不按下Windows键的情况下输入它。
不幸的是,我不知道它的批处理名称。 我已经尝试过:
WIN
WINDOWS
WINKEY
START
LWIN
但是没有一个有效的方法。
我已经到处寻找这个,非常感谢您的帮助。
最近我一直在使用Batch脚本中的SendKeys函数。
我已经明白如何向窗口输入某些按键,例如Tab键:
%SendKeys% "{TAB}"
或者是退格键:
%SendKeys% "{BACKSPACE}"
我一直在尝试在不按下Windows键的情况下输入它。
不幸的是,我不知道它的批处理名称。 我已经尝试过:
WIN
WINDOWS
WINKEY
START
LWIN
目前在sendkey's中无法模拟windows home logo,但这并不意味着不可能。
如果您查看Windows快捷键,您会发现可以使用以下组合键来模拟打开“开始”菜单: Ctrl + Esc。
要在批处理中模拟此操作,您可以使用: powershell -c "$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys('^{ESCAPE}')
或者在您的情况下: %SendKeys% "^{ESCAPE}"
.
如在sendkeys中所述:
:-)
- John KensImports 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
将其放置在您的桌面上。
打开命令提示符并输入
C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc "%userprofile%\desktop\Win+R.vb" /out:"%userprofile%\Desktop\Win+R.exe" /target:winexe
我目前在我的代码中使用SendKeys,它可以很好地自动化某些键盘命令。这只是自动设置默认浏览器和默认照片应用程序。我知道这已经晚了几年,但希望它有所帮助。
control /name Microsoft.DefaultPrograms /page pageDefaultProgram
SET TempVBSFile=%tmp%\~tmpSendKeysTemp.vbs
IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%"
ECHO Set WshShell = WScript.CreateObject("WScript.Shell") >>"%TempVBSFile%"
ECHO Wscript.Sleep 2000 >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{TAB 3}" >>"%TempVBSFile%"
ECHO Wscript.Sleep 1000 >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{ENTER}" >>"%TempVBSFile%"
ECHO Wscript.Sleep 4000 >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{TAB 3}" >>"%TempVBSFile%"
ECHO Wscript.Sleep 1000 >>"%TempVBSFile%"
ECHO WshShell.SendKeys "{ENTER}" >>"%TempVBSFile%"
ECHO Wscript.Sleep 4000 >>"%TempVBSFile%"
ECHO WshShell.SendKeys "%%{F4}" >>"%TempVBSFile%"
CSCRIPT //nologo "%TempVBSFile%"
echo Return here once you are done.
echo.
echo ^< Press ANY key to return to the Menu ^> & Pause > NUL)
CLS & Goto :Menu
已解决 - 首先创建一个带有代码的 .vbs 文件
Set WshShell = WScript.CreateObject("WScript.Shell")`
WshShell.AppActivate "notepad"
WshShell.SendKeys "^{pgdn}"
接着,你必须从一个 .bat 文件中调用那个文件。