Консультация № 140414
21.07.2008, 15:47
0.00 руб.
0 2 2
Здраствуйте ув. эксперты. Задача такова. Мне необходимо проверить, есть ли в задачах процесс abc.exe. И если он есть, то необходимо его закрыть и после этого открыть процесс abc1.exe. Иначе просто открыть abc1.exe. Заранее спасибо и всем хорошие оценки за достойные ответы.

Обсуждение

давно
Профессионал
848
1596
21.07.2008, 16:15
общий
это ответ
Здравствуйте, Горбунов Андрей Александрович!
К ответу прикрепляю пример, который умеет составлять список запущенных процессов, а также убивать выбранный процесс.
Думаю не составит труда написать процедуру поиска строки(abc.exe) в списке запущенных процессов...
для запуска своего процесса используйте функцию shell
Call Shell("c:\abc1.exe", vbNormalFocus)
если потом нужно будет использовать индетификатор запущенного процесса, то испольхуйте
id = Shell("c:\abc1.exe", vbNormalFocus)
Неизвестный
21.07.2008, 16:32
общий
это ответ
Здравствуйте, Горбунов Андрей Александрович!
Процедура в прилажении "выловит" и закроет все запущеные процессы "abc.exe", затем запустит "abc1.exe" только если будет указан путь расположения файла - "C:\abc1.exe".
Евгений.

Приложение:
Sub openProg()Dim Squery, WshShell, Process, Processes, Program, ProgPathProgram = """abc.exe""" ‘ "вылавливаемый"процессProgPath = """C:\abc1.exe""" ‘ Запускаемая программа с указанием путиSet WshShell = CreateObject("WScript.Shell")On Error Resume Next: Err.ClearSet WMI = GetObject("winMgmts:")If Err.Number <> 0 Then Exit SubSquery = "Select * From Win32_Process Where Name=" + ProgramSet Processes = WMI.ExecQuery(Squery)On Error Resume NextFor Each Process In Processes Process.TerminateNextWshShell.Run ProgPath, 1, FalseEnd Sub
Форма ответа