Board logo

标题: [系统相关] 批处理怎样禁止1个进程多开? [打印本页]

作者: zx586    时间: 2010-10-11 21:19     标题: 批处理怎样禁止1个进程多开?

比如 L:\wen\zb.exe,只能运行1次,然后点多少次都是无效的.
这个是游戏的进程,我的意思是只能开1个游戏,不能多开,可以实现吗?谢谢!
作者: lxzzr    时间: 2010-10-12 20:25     标题: 回复 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文件见附件




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2