Bat文件触发程序热键

时间:2019-03-12 05:59:43

标签: batch-file

我必须记录一个程序的会话,并希望Windows任务(1小时)运行一个.Bat文件以打“ F1”以停止记录,然后运行另一个.bat文件以关闭PC。 我没有关闭PC的问题,但可以关闭“ F1”。

这是我认为可以使用的代码。

@echo off
cd "C:\Program Files\ShareX"
Start "" /b sharex.exe 
timeout /T 5 /nobreak >nul 
%SendKeys% "{F1}"
timeout /T 5 /nobreak >nul
taskkill /IM sharex.exe /F

谢谢

1 个答案:

答案 0 :(得分:0)

所以,如果我理解这个问题... 这将为您创建sendkey.vbs并在您的代码中运行它...

{对不起,我的受限英语}

@echo off & setlocal enabledelayedexpansion

set "_temp_vbs=%temp%\_temp_file_4vbs_.vbs"
>"!_temp_vbs!"^
    (
     echo/ Set WshShell = WScript.CreateObject^("WScript.Shell"^)
     echo/ Set objShell = WScript.CreateObject^("WScript.Shell"^)
     echo/ Wscript.Sleep 1500
     echo/ objShell.AppActivate "sharex.exe"
     echo/ Wscript.Sleep 1500
     echo/ WshShell.SendKeys "({F1})"
    )

cd /d "C:\Program Files\ShareX" & Start "" /b sharex.exe
timeout /t 3600 /nobreak && start "" /w "%Windir%\System32\wScript.exe" //nologo "!_temp_vbs!" 

>nul 2>nul ((
tasklist | findstr /lic:"ShareX.exe" 
) && ( 
timeout /t 5 /nobreak >nul & taskkill /f /im "ShareX.exe" &  del /q /f "!_temp_vbs!"
) || (
call shotdown_pc.bat & exit /b
)) >nul 2>nul