是否有其他方法将击键发送到应用程序?
我有这个Powershell脚本,按下反勾键后,控制台应该在应用程序中打开,但这并没有发生,但按下键盘的物理方式,它的工作完美。
在我自己打开控制台后,sendkey可以工作,但第一个sendkey(反勾)不工作。
我需要的是脚本通过发送反勾键打开控制台。
# startpwsscrip.ps1
function wait {
param([int]$stop = 8)
Start-Sleep -seconds $stop
}
[void] [System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic")
& "$env:C:\Program Files (x86)\Steam\SteamApps\common\Half-Life\cstrike.exe"
$a = Get-Process | Where-Object {$_.Name -eq "Counter-strike"}
wait3
$Cursor = [system.windows.forms.cursor]::Clip
[System.Windows.Forms.Cursor]::Position = New-Object system.drawing.point(509,763)
wait
[System.Windows.Forms.SendKeys]::SendWait({"ENTER"})
wait
[System.Windows.Forms.SendKeys]::SendWait({"`"})
wait
[System.Windows.Forms.SendKeys]::SendWait("connect ")
wait
[System.Windows.Forms.SendKeys]::SendWait("192.168.1.1")
wait
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
3条答案
按热度按时间nzrxty8p1#
我看到的第一个问题是,您没有引用System.Windows.Forms,并且在VisualBasic引用中有一个额外的单引号,这不太好。
在这里加单引号。
“等待”或“等待3”不是ps1方法,请尝试启动-休眠1
cgvd09ve2#
因为反勾号是一个特殊的字符,尝试使用两个反勾号。一个用于转义另一个,如下所示:
[系统.窗口.窗体.发送键]::发送等待(“''”)
p8h8hvxi3#
倒勾是双引号字符串中的转义字符。您应该使用单引号字符串,因为单引号字符串的内容是按字面解释的。此外,您不需要在字符串两边使用大括号。
另见: