在运行该程序之前,如何检查该程序的实例是否正在运行?

在运行该程序之前,如何检查该程序的实例是否正在运行?

我正在寻找一个软件(可以是 BAT 脚本),它可以在运行程序之前检查程序实例是否正在运行。如果软件/脚本检测到程序未运行,则应该运行该程序,否则它不应该执行任何操作。

注意:我将要运行的程序(优酷) 在运行自身之前,没有检测来检查其自身实例是否已在运行。

我之所以问这个问题是因为我目前正在使用一个软件(网络) 如果它检测到我的互联网连接的带宽在一段时间内没有使用,它就会运行 uTorrent(在我的情况下,我将其设置为如果它检测到在 5 分钟内下载和上传了 50 KB 或更少的数据,就运行 uTorrent)。

但是,它没有在调用程序之前检查程序是否已在运行的功能。如果它在 uTorrent 已在运行的情况下运行 uTorrent,则 uTorrent 的窗口会移到屏幕前面,从而窃取窗口焦点,如果您正在窗口上工作并且不希望另一个窗口移到屏幕前面,这可能会分散您的注意力。

仅当 uTorrent 尚未运行时,uTorrent /MINIMIZED 参数才能正常工作。

或者是否有人知道其他软件可以执行我当前正在使用的软件的功能,只不过它会在调用 uTorrent 之前检查它是否已在运行?

编辑:我想补充一点,如果软件/脚本以最小化或隐藏状态运行,而不是转到前台或窃取窗口焦点,那就更好了。此外,软件或 BAT 脚本最好在完成任务后自行退出。

答案1

也许是这样的?

任务列表 | 查找“programname.exe”
如果错误级别 1 c:\path\to\programname.exe

答案2

这几乎肯定可以在批处理文件中完成,但是(像任何非平凡的事情一样)这并不容易。

但是 PowerShell 使这变得简单:

if (-not (Get-Proceess "Name")) {
  #run new instance here
}

其中Name被进程名称替换(这通常是不带 的文件名.exe)。

相关内容