[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 批处理怎样禁止1个进程多开?

比如 L:\wen\zb.exe,只能运行1次,然后点多少次都是无效的.
这个是游戏的进程,我的意思是只能开1个游戏,不能多开,可以实现吗?谢谢!

回复 1楼 的帖子

给你个参考,在我的机上测试成功.
  1. @echo off
  2. set filepath=C:\QQ2009
  3. set filename=qq.exe
  4. :loop
  5. set pid1=
  6. set pid2=
  7. rem 延时
  8. ping 127.0.0.1 -n 2 >nul
  9. rem 获取services进程的PID
  10. for /f "usebackq skip=1 tokens=1 delims= " %%a in (`"wmic path win32_process.name='services.exe' get processId"`) do (set pid1=%%a)
  11. for /f "usebackq skip=1 tokens=1 delims= " %%a in (`"wmic path win32_process.name='%filename%' get processId 2>nul"`) do (set pid2=%%a)
  12. if "%pid2%" == "" (
  13. dhfile.exe /c %pid1% "%filename%" 1>nul 2>nul
  14. ) else (
  15. dhfile.exe /p %pid1% "%filepath%\%filename%" 1>nul 2>nul
  16. )
  17. goto :loop
复制代码
dhfile.exe文件见附件

TOP

返回列表