Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Process Hacker (часть 2)

Модерирует : gyra, Maz

Maz (31-10-2019 22:20): Process Hacker (часть 3) только официальные сборки  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Код:
; Стартер для портабельной версии ProcessHacker v.1.01 (C) Smitis, 2017
 
#requireadmin
 
; UDF для работы с сервисами https://www.autoitscript.com/forum/topic/80201-_service_udf-v4-build-your-own-service-with-autoit-code/
#include "services.au3"
 
Opt("ExpandEnvStrings",0)
Opt("ExpandVarStrings",0)
Opt("WinTextMatchMode",2)
Opt("WinTitleMatchMode",3) ; точное сравнение с заголовком
 
$ret = DllCall('kernel32.dll','bool','Wow64DisableWow64FsRedirection','ptr*',0)
 
$srv = "KProcessHacker3"
$ph = "ProcessHacker.exe"
$title = "[TITLE:Process Hacker]"
 
; Поиск исполняемого файла
$dir = ""
if @OSVersion="WIN_2003" or @OSVersion="WIN_XP" or @OSVersion="WIN_XPe" or @OSVersion="WIN_2000" then
    $sub = "xp"
else
    $sub = @OSArch
endif
if FileExists(@ScriptDir&"\"&$sub&"\"&$ph) then ; в папке x64, x86 или XP
    $dir = @ScriptDir & "\" & $sub
else
    emsg("Process Hacker not found!")
    exit 1
endif
 
; Завершить уже запущенный ProcessHacker
if ProcessExists($ph) then
    ProcessClose($ph)
    $cnt = 0
    while ProcessExists($ph) ; ждём завершения процесса
        $cnt += 1
        if $cnt > 20 then ; что-то зависло, процесс не завершается слишком долго
            emsg("Process Hacker not closed!")
            exit 2
        endif
        Sleep(100)
    wend
endif
 
; Среда
FileChangeDir($dir)
$exe = '"' & $dir & "\" & $ph & '"'
EnvSet("ProcessHackerStart",@ScriptDir)
EnvSet("ProcessHackerDir",$dir)
 
; Инсталяция драйвера
$pid = Run($exe & " -installkph")
Sleep(100)
if ProcessExists($pid) then ; Если PH запущен, значит висит окно предупреждения
    ;WinClose("[CLASS:#32770; TITLE:Process Hacker]")
    ProcessWinClose($pid,$title)
    $cnt = 0
    while ProcessExists($pid) ; ждём завершения процесса
        $cnt += 1
        if $cnt > 20 then ; что-то зависло, процесс не завершается слишком долго
            emsg("Failed install driver!")
            exit 3
        endif
        Sleep(100)
    wend
endif
 
; Рестарт драйвера
if _Service_Exists($srv) then
    _Service_Stop($srv)
    RegWrite("HKLM\SYSTEM\CurrentControlSet\services\KProcessHacker3\Parameters","SecurityLevel","REG_DWORD",0)
    ;RegWrite("HKLM\SYSTEM\CurrentControlSet\services\KProcessHacker3","ImagePath","REG_SZ","??\"&$dir&"\kprocesshacker.sys") ; на всякий случай, а то были странности
    _Service_Start($srv)
else ; что-то пошло не так
    emsg($srv & " not exist!")
    exit 4
endif
 
; Запускаем и ждём завершения Process Hacker
$pid = RunWait($exe)
 
; Деинсталяция драйвера
$pid = Run($exe & " -uninstallkph")
Sleep(100)
if ProcessExists($pid) then ; Если PH запущен, значит висит окно предупреждения
    ;WinClose("[CLASS:#32770; TITLE:Process Hacker]")
    ProcessWinClose($pid,$title)
    $cnt = 0
    while ProcessExists($pid) ; ждём завершения процесса
        $cnt += 1
        if $cnt > 20 then ; что-то зависло, процесс не завершается слишком долго
            emsg("Failed uninstall driver!")
            exit 5
        endif
        Sleep(100)
    wend
endif
 
exit 0
 
func ProcessWinClose($p,$w)
    local $i
    local $list = WinList($w)
    for $i=1 to $list[0][0]
        if WinGetProcess($list[$i][1]) = $p then
            WinClose($list[$i][1])
            ProcessClose($p)
        endif
    next
endfunc
 
func msg($text)
    MsgBox(0,"PH START",$text)
endfunc
 
func emsg($text)
    MsgBox(16,"PH START",$text)
endfunc

Всего записей: 3215 | Зарегистр. 09-02-2003 | Отправлено: 11:00 16-08-2017 | Исправлено: Smitis, 21:29 17-08-2017
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Process Hacker (часть 2)
Maz (31-10-2019 22:20): Process Hacker (часть 3) только официальные сборки


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru