Показать полную графическую версию : Скрипт на нажатие клавиш
Sergey999
17-05-2018, 12:39
Приветствую! Пишу скрипт для нажатия клавиш клавиатуры. Скрипт ставлю на планировщик заданий Windows все работает если учетка не заблокирована. Но мне нужно проработка скрипта на заблокированой учетке. Прошу подсказки код привожу ниже))
$wshell = New-Object -ComObject WScript.Shell
$id = (gps bpwstart).id
$wshell.AppActivate($id)
start-sleep 1
$wshell.SendKeys("{ESC}")
Start-Sleep 5
$wshell.SendKeys("{ENTER}")
Start-Sleep 1
Но мне нужно проработка скрипта на заблокированой учетке. »
Никак. Совсем. Ни этим кодом, ни аналогичным на AutoIt или AutoHotKey. Тем не менее, в случае использования двух последних языков Вы можете использовать отсылку клавиш элементу управления (ControlSend) вместо окна — это работает.
21 Why doesn't my script work on a locked workstation? (https://www.autoitscript.com/wiki/FAQ#Why_doesn.27t_my_script_work_on_a_locked_workstation.3F)
can a script made to work if the computer is lock?????? - Ask for Help - AutoHotkey Community (https://autohotkey.com/board/topic/50813-can-a-script-made-to-work-if-the-computer-is-lock/)
Sergey999
17-05-2018, 13:17
Тогда еще вопрос как на PowerShell закрыть программу в нужное время ну кроме просто убить процесс?
Sergey999, найти главное окно приложения, затем послать ему сообщение WM_CLOSE. К счастью, в .Net уже реализован подобный механизм в виде единого целого — метода .CloseMainWindow() класса System.Diagnostics.Process. Например:
$sProcessName = 'notepad'
Get-Process -Name $sProcessName -ErrorAction SilentlyContinue | ForEach-Object -Process {
if($_.CloseMainWindow()) {
Write-Host "Close message was successfully sent to main window of [$sProcessName], ID [$($_.ID)]"
} else {
Write-Host "Error occurred while trying close process [$sProcessName], ID [$($_.ID)]" -ForegroundColor Red
}
}
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.