dinis.grek |
13-07-2014 07:37 2375904 |
CMD/BAT+VBS завершение процессов
Del
|
Как вариант:
Код:
Set fso = CreateObject("Scripting.FileSystemObject")
Set RegFile = fso.CreateTextFile("ProcKiller.bat", true)
RegFile.WriteLine("taskkill /F /IM Дочерний_процесс_2.exe /T")
RegFile.WriteLine("taskkill /F /IM ДОЧЕРНИЙ.EXE /T")
RegFile.WriteLine("taskkill /F /IM дочерний.exe /T")
RegFile.WriteLine("taskkill /F /IM Программа.EXE /T")
RegFile.WriteLine("del " & chr(34) & "%~f0" & chr(34))
RegFile.Close
CreateObject("WScript.Shell").Run "ProcKiller.bat", 0, False
.
|
dinis.grek, перечислите конкретные имена основного процесса, дочерних процессов, укажите какие процессы порождают дочерние процессы, как хотите завершать — запросом на завершение или принудительно.
|
Поместите следующий код:
читать дальше »
Код:
Option Explicit
Dim objSWbemObjectEx
Dim elem
With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
For Each elem In Array("Paint it!.EXE", "PsiService_2.exe", "wisptis.exe")
For Each objSWbemObjectEx In .ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" & elem & "'")
WScript.Echo objSWbemObjectEx.Name, vbTab, objSWbemObjectEx.ProcessID, vbTab, objSWbemObjectEx.ParentProcessID
Next
Next
End With
WScript.Quit 0
в файл с расширением .vbs. Исполните его двойным щелчком при запущенных вышеуказанных процессах. Когда появится диалоговое окно, наподобие:
— нажмите в нём Ctrl-C, чтобы скопировать его содержимое, наподобие:
читать дальше »
Цитата:
Код:
---------------------------
Windows Script Host
---------------------------
notepad.exe 1616 2348
---------------------------
ОК
---------------------------
|
Полученное содержимое вставьте сюда, на форум, оформив его тэгом [code].
|
Поместите следующий код:
читать дальше »
Код:
Option Explicit
Dim strPath2Process
Dim objSWbemObjectEx
Dim lngProcessID
With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
strPath2Process = WScript.CreateObject("WScript.Shell").CurrentDirectory
If .Get("Win32_Process").Create(strPath2Process & "\Paint it!.exe", strPath2Process, Nothing, lngProcessID) = 0 Then
.ExecNotificationQuery( _
"SELECT * FROM __InstanceDeletionEvent WITHIN 1 " & _
"WHERE TargetInstance ISA 'Win32_Process' AND TargetInstance.Handle = '" & CStr(lngProcessID) & "'" _
).NextEvent
For Each objSWbemObjectEx In .ExecQuery("SELECT * FROM Win32_Process WHERE ParentProcessID = '" & CStr(lngProcessID) & "'")
If objSWbemObjectEx.Terminate() <> 0 Then
WScript.Echo "Can't terminate child process [" & objSWbemObjectEx.Name & "]."
End If
Next
Else
WScript.Echo "Can't execute [" & strPath2Process & "\Paint it!.exe]."
WScript.Quit 1
End If
End With
WScript.Quit 0
в файл с расширением .vbs в папку с исполняемым файлом «Paint it!.exe». Запустите его двойным щелчком из Проводника. Данный скрипт должен запустить процесс «Paint it!.exe», отследить его завершение, закрыть все дочерние процессы, порождённые именно этим процессом «Paint it!.exe» и завершить свою работу. Пробуйте.
|
Цитата:
Цитата dinis.grek
Не работает так. Так как есть своя специфика, как я упомянул собирается портативная версия. Файл скрипта перед сборкой добавляется в корневой каталог проекта. Перед запуском программы собранной выпадает ошибка выполнения скрипта.
|
Какая именно ошибка?
|
dinis.grek, покажите Ваш «Package.ini».
Цитата:
Цитата dinis.grek
Все для более точного ответа и проверки решения я смогу отписать завтра. »
|
Не нужно. Ваш «Paint it!.exe» — «чёртик из табакерки»:
читать дальше »
Цитата:
- Понятно, - сказала Алиса, - а "_хливкие_"?
- "_Хливкие_" - это хлипкие и ловкие. "Хлипкие" значит то же, что и "хилые". Понимаешь, это слово как бумажник. Раскроешь, а там два отделения! Так и тут - это слово раскладывается на два!
- Да, теперь мне ясно, - заметила задумчиво Алиса.
|
Эта оболочка уже запускает и основной исполняемый файл, и прочие потребные ресурсы. Кстати, у меня запуск «wisptis.exe» не наблюдается. Так что выложенный выше мною код тут никаким боком.
|
Время: 00:42.
© OSzone.net 2001-