如何在Windows中使用批处理文件编程执行exe文件后锁定计算机?

时间:2013-09-27 11:05:58

标签: windows batch-file

我有一个类似的批处理文件程序。

@echo off
start Mat.exe
>>Need a code here to runand check for termination of "Mat.exe"
rundll32.exe user32.dll, LockWorkStation

>>end of program

如果有人可以帮我设置程序,以便我可以在“Mat.exe”文件终止后立即锁定我的电脑。我真的很感激。提前致谢

2 个答案:

答案 0 :(得分:5)

只需在start之前删除Mat.exe,这样您的批处理文件就会等到Mat.exe完成。

编辑:仅当您的Mat.exe在控制台或类似设备中运行时才有效。 如果删除start不起作用,您可能需要检查天气是否仍在运行Mat.exe。为此,我找到了一个非常有用的帖子,它适用于你:How to wait for a process to terminate to execute another process in batch file

Edit2:完整代码:

@echo off
:LOOP
start Mat.exe
TASKLIST 2>&1 | find "Mat.exe" > nul
IF ERRORLEVEL 1 (
  rundll32.exe user32.dll, LockWorkStation
) ELSE (
  SLEEP 3
  GOTO LOOP
)

您可以根据需要调整SLEEP,但我建议至少使用1秒,否则您将100%使用。

答案 1 :(得分:1)

尝试使用/ Wait开关的Start命令。这是一个例子:

@echo off 
REM //start Mat.exe
start /wait [path of Mat.exe]
rundll32.exe user32.dll, LockWorkStation

请记住使用8.3文件名,并且不要在路径字符串

中包含(“”)