5

В Windows 7 я ищу быстрый способ узнать, работает ли определенное приложение или нет. (Специфика приложения не имеет значения - это может быть, например, Блокнот или Internet Explorer.)

У меня есть значок приложения, прикрепленный к моей панели задач, поэтому одним из решений было бы изменение цвета значка во время работы приложения. Однако могут быть и другие способы - подойдут любые заметные изменения в графическом интерфейсе Windows, которые не требуют нажатия или ввода текста.

У вас есть какие-нибудь предложения?

РЕДАКТИРОВАТЬ: немного больше контекста: я разработчик программного обеспечения, который часто запускает скрипт сборки. Сценарий не работает, если определенное приложение открыто. Иногда я забываю проверить, открыто ли приложение; Затем я должен закрыть приложение и перезапустить скрипт.

8 ответов8

7

Это встроено в Windows 7. Вокруг значка должна быть рамка.

Internet Explorer закреплен и не работает:

Internet Explorer закреплен, работает и свернут:

2

Это может быть достигнуто с помощью короткого сценария AutoIt. Для этого необходимо установить программное обеспечение AutoIt.

Подробности такого сценария можно найти в официальной документации по адресу http://www.autoitscript.com/autoit3/docs/functions/ProcessExists.htm.

2

Попробуйте запустить

tasklist | findstr "notepad"
1

Я выбил этот скрипт PowerShell. Он проверяет, находится ли процесс, назначенный $ Victim, в списке, возвращаемом Get-Process. Большая часть остальной части скрипта связана с созданием полезной нагрузки Message Box.

Start-Sleep просто чтобы дать вам передышку между тестами.

Это оригинальная идея от сценариста-любителя, поэтому она может выиграть от улучшений, как в сценариях, так и в логике.

$Victim = "iExplore"
function Output-MsgBox
{
$WshShell = New-Object -comobject wscript.shell
$Message ="$Victim is running "
$PopUp = $WshShell.popup("$Message",0,"Your Alert ",1)
}
For (1..1000)
$Alerty = Get-Process
if($Alerty.ProcessName -contains $Victim) {
   Output-MsgBox; Start-Sleep 10}
Else {Write-Host "No $Victim";Start-Sleep 10}
}
1

Procmon от SysInternals скажет вам, что он работает, и если вам нужно больше узнать о приложении, он может подробно проиллюстрировать файлы и дополнительные потоки, которые он создает.

http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

1

Самый надежный способ - проверить, запущен ли процесс. Вы можете использовать список tasklist или pslist (прямая ссылка) из SysInternals.

1

Если у вас включен WMI (должен быть по умолчанию).

Я бы предложил использовать Sysinternals BGinfo

Вы можете вызывать BGinfo с помощью планировщика задач каждые X секунд и обновлять фон рабочего стола с помощью пользовательского запроса WMI:

SELECT Name  FROM Win32_Process Where Name like "notepad.exe" 

Конечно, вы можете настроить, как вам нравится.

Настроить bginfo.exe очень просто.

пример

0

Ctrl+Shift+Esc должен вызвать диспетчер задач. Первая вкладка слева показывает ваши приложения, следующая вкладка показывает ваши запущенные процессы. Если вы хотите увидеть все запущенные процессы, нажмите кнопку "Показать процессы от всех пользователей". Нет необходимости устанавливать что-либо от Sysinternals, если я правильно прочитал ваш вопрос.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .