|
17.11.2006, 11:39 | #1 |
Злыдни
|
Цитата:
Сообщение от gl00mie
Что и требовалось доказать. Хотя, признаться честно, в wmi я не силен, но у меня есть большое подозрение, что метод W32_Process::Terminate() выливается в вызов kernel32.TerminateProcess() - жуткий метод прибивания процесса без какой-либо возможности для последнего "подчистить" за собой, закрыть соединения и файлы, собрать мусор и т.п. А Access denied - штатный ответ виндов на попытку применения этой функции к процессам, запущенным как сервисы.
Предлагаю все-таки остановиться на dll-ке, разработанной AndyD. |
|
17.11.2006, 12:30 | #2 |
Участник
|
"Не верю!" Я провел небольшой эксперимент "на кошках" - сервисе фонового копирования файлов для Far Manager:
Код: [C:\]wmic process where (name='bcsvc.exe') call terminate Executing (\\UNWS0818\ROOT\CIMV2:Win32_Process.Handle="2076")->terminate() Method execution successful. Out Parameters: instance of __PARAMETERS { ReturnValue = 0; }; Код: Event Type: Error Event Source: Service Control Manager Event Category: None Event ID: 7034 Date: 17.11.2006 Time: 12:26:49 User: N/A Computer: UNWS0818 Description: The FAR Background Copy Service service terminated unexpectedly. It has done this 1 time(s). For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp. |
|