Что нового

Закрытие процесса - по расположению исполняемого файла

Snegovik

Новичок
Сообщения
47
Репутация
0
Приветствую всех.

В диспетчере команд - если выбрать свойства процесса - то можно видеть такую вещь как "Расположение" (на вкладке "Общие")

Подскажите как закрыть процесс - именно по этому расположению исполняемого файла ?

Например - если расположение исполняемого файла находится в папке "C:\Program Files\Microsoft Office\Office15" - то запустить команду ProcessClose() (или как-то еще закрыть этот конкретный процесс).
 
Автор
S

Snegovik

Новичок
Сообщения
47
Репутация
0
Продолжение темы...

Имеется вот такой код:
Код:
$ProcName = "'EXCEL.EXE'"
$strComputer = "."
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery( "SELECT * FROM Win32_Process WHERE Name = " & $ProcName  )
ConsoleWrite ("SELECT * FROM Win32_Process WHERE Name = " & $ProcName & @CRLF)
For $objItem in $colItems
    ConsoleWrite( "-----------------------------------" & @CRLF)
    ConsoleWrite ("Name: " & $objItem.Name & @CRLF)
    ConsoleWrite ("Handle: " & $objItem.Handle & @CRLF)
    ConsoleWrite ("CommandLine: " & $objItem.CommandLine & @CRLF)
    ConsoleWrite ("Path: " & $objItem.ExecutablePath & @CRLF)
Next

Если его запустить в моей системе (из консоли), то он покажет данные по трем процессам EXCEL.EXE.
У всех трех процессов - одинаковое имя (EXCEL.EXE)
Однако у них разные параметры "CommandLine"

Как закрыть процесс, CommandLine которого - "C:\Program Files\Microsoft Office\Office15\EXCEL.EXE" ?
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Snegovik [?]
закрыть процесс, CommandLine которого
В данном случае лучше использовать ExecutablePath. Добавьте в цикл эту строку
Код:
If $objItem.ExecutablePath = "C:\Program Files\Microsoft Office\Office15\EXCEL.EXE" Then ProcessClose($objItem.Handle)
 
Автор
S

Snegovik

Новичок
Сообщения
47
Репутация
0
InnI теперь все заработало. Спасибо.
 
Верх