Как я проверяю, работает ли экземпляр программы или нет, прежде, чем запустить ту программу?

Я ищу программное обеспечение (мог быть как сценарий BAT), который мог проверить, работает ли экземпляр программы или нет, прежде, чем запустить ту программу. И если программное обеспечение / сценарий обнаруживает, что программа не работает, это должно запустить ту программу, еще это ничего не должно делать.

Примечание: Программа, которую я собираюсь запустить (uTorrent), не имеет обнаружения, чтобы проверить, работает ли экземпляр себя уже, прежде, чем выполнить себя.

Я спрашиваю это, потому что я в настоящее время использую программное обеспечение (Networx), который выполняет uTorrent, если это обнаруживает, что пропускная способность моего интернет-соединения не использовалась в течение некоторого времени (в моем случае, я установил его для выполнения uTorrent, если это обнаруживает, что 50 КБ или меньше были загружены и загружены в течение 5 мелких периодов).

Однако это не имеет функции, чтобы проверить, работает ли программа уже прежде, чем назвать его. Если это выполняет uTorrent, в то время как uTorrent уже работает, окно uTorrent переходит к передней стороне экрана, крадя фокус окна, который мог быть недовольным, если Вы работаете над окном и не хотите другое окно, идущее в переднюю сторону экрана.

uTorrent / МИНИМИЗИРОВАЛ аргумент, только работает правильно, если uTorrent уже не работает.

Или кто-либо знает о другом программном обеспечении, которое может сделать то, что делает программное обеспечение, которое я в настоящее время использую, за исключением того, что оно проверит, работает ли uTorrent уже, прежде, чем назвать его?

Править: Я хотел бы добавить, что желательно, если программное обеспечение / выполнения сценария, минимизированные или скрытые и не, переходят к переднему плану или крадут фокус окна. Кроме того, программное обеспечение или сценарий BAT предпочтительно должны выйти из себя после того, как это сделало свою задачу.

1
задан 22.09.2014, 17:07

2 ответа

Что-то вроде этого, возможно?

tasklist | find "programname.exe"
if errorlevel 1 c:\path\to\programname.exe
3
ответ дан 12.12.2019, 09:14

Почти наверняка возможно сделать в пакетном файле, но (как что-либо нетривиальное) это не будет легко.

Однако PowerShell делает это легким:

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

где Name заменяется именем процесса (это обычно - имя файла без .exe).

1
ответ дан 12.12.2019, 09:14

Теги

Похожие вопросы