我正在尝试编写一个脚本,并且需要在弹出一个新对话框后模拟一些击键。当我进入该功能块时,powershell返回“False”,并且不执行“击键”。我觉得我没有到达下一个窗口。
function ats{
$wshell = New-Object -ComObject wscript.shell;
cmd /c C:\location\location\ats.exe
$wshell.AppActivate('Administrative Tool Suite (ATS)')
Sleep 1
$wshell.SendKeys('TAB')
sleep .5
$wshell.SendKeys('TAB')
sleep .5
$wshell.SendKeys('TAB')
sleep .5
$wshell.SendKeys('TAB')
sleep .5
$wshell.SendKeys('~')
}
ats
最佳答案
Powershell正在等待退出命令中的exe。因此,您需要运行exe并并行执行其他命令的机制。
只需更改行:
start-job { cmd /c notepad.exe }
它将启动新线程以打开记事本,并且您的其他代码将并行执行。它将密钥发送到记事本。
如果要发送
tab
,则必须使用powershell转义字符,例如`t 。关于powershell - 当我尝试模拟击键时,值返回false,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56696486/