Як перевірити, запущений екземпляр програми чи ні, перш ніж запустити цю програму?


1

Я шукаю програмне забезпечення (могло б бути як сценарій BAT), яке могло б перевірити, запущений екземпляр програми чи ні, перш ніж запустити цю програму. І якщо програмне забезпечення / скрипт виявить, що програма не працює, вона повинна запустити цю програму, інакше вона нічого не повинна робити.

Примітка. Програма, яку я запускаю ( uTorrent ), не має виявлення, щоб перевірити, чи вже запущений екземпляр, перед тим, як запустити себе.

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

Однак у нього немає функції перевірити, чи програма вже запущена, перш ніж викликати її. Якщо він запускається uTorrent, поки uTorrent вже запущений, вікно uTorrent переходить на передню частину екрана, крадучи фокус вікна, що може відволікати увагу, якщо ви працюєте над вікном і не хочете, щоб інше вікно переходило на передню частину екрана.

Аргумент uTorrent / MINIMIZED працює правильно лише тоді, коли uTorrent ще не працює.

Або хтось знає про інше програмне забезпечення, яке може виконувати те, що робить програмне забезпечення, яке я зараз використовую, за винятком того, що він перевірить, чи вже запущений uTorrent, перш ніж викликати його?

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


Так на допомогу: stackoverflow.com/questions/162291/…
Craig H

Відповіді:


3

Щось подібне, можливо?

список завдань | знайти "programname.exe"
якщо рівень помилок 1 c: \ шлях \ до \ programname.exe

Чи правильно, якщо я помістив це у .CMD-файл, а не у .BAT-файл? Також, чи є спосіб мінімізувати цей CMD / BAT файл (вікно не повинно з’являтися на передньому плані чи красти фокус під час запуску)?
galacticninja

Він буде функціонувати або у файлі .bat, або .cmd. Трохи попрацювавши, я думаю, ви, мабуть, захочете скористатись командою start так: якщо errorlevel 1 запустити "" "c: \ шлях до \ programname.exe", щоб пакет закінчувався, а не затримувався. Якщо ваша програма запуску може запустити завдання мінімізовано, у інтерпретатора команд не повинно виникнути проблем з цим.
Джейсон Шерман

Виявляється, я міг зробити ярлик до файлу .BAT і просто встановити його для запуску "Мінімізовано" у "Властивості" та замість цього запустити цей ярлик. Я також хотів би запитати: який правильний синтаксис, якщо я хотів би запустити свою програму з аргументом / МІНІМІЗОВАНО (це запускається uTorrent мінімізовано)
galacticninja

1

Це майже напевно можливо зробити в пакетному файлі, але (як і все, що нетривіально), це буде непросто.

Однак PowerShell робить це легко:

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

де Nameзамінюється ім'я процесу (зазвичай це ім'я файлу без .exe).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.