Есть ли другой способ отправить нажатия клавиш в приложение?Sendkeys Powershell не работает должным образом
У меня есть сценарий Powershell, после нажатия клавиши backtick консоль должна открываться в приложении, но этого не происходит, но при нажатии на клавиатуру физический способ работает отлично.
После того, как я сам открываю консоль, sendkeys работают, но первые sendkeys (backtick) не работают.
Что мне нужно, так это то, что скрипт открывает консоль, отправив ключ обратной линии.
# 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}")
, как для кавычки, я не могу найти какой-либо документацию банкомат SendKeys этой кнопки. Но здесь хорошо читаем о том, как нам избежать этого. http://www.rlmueller.net/PowerShellEscape.htm –
Я думаю, что SendKeys зависит от ваших настроек региона (раскладка клавиатуры), поэтому это может различаться. Я создаю backtick, удерживая shift, нажимая '\' и занимая пространство, поэтому для его создания я буду использовать: '[System.Windows.Forms.SendKeys] :: SendWait (" + \ ")'. '+' означает сдерживание сдвига –