Script kurzzeitig schützen

  • Hab mir den Link durchgelesen, ich glaube, ich hab das Prinzip verstanden, aber ich hab keinen Plan, wie man das in AutoIt umsetzt. Wär nett, wenn das jemand hier einbauen könnte:

    [autoit]

    #include <Security.au3>
    #include <WinAPI.au3>

    [/autoit][autoit][/autoit][autoit]

    #RequireAdmin

    [/autoit][autoit][/autoit][autoit]

    ;Debug-Privlegien holen...
    Local $hToken = _Security__OpenProcessToken(_WinAPI_GetCurrentProcess(), $TOKEN_ALL_ACCESS)
    _Security__SetPrivilege($hToken, $SE_DEBUG_NAME, True)
    _WinAPI_CloseHandle($hToken)

    [/autoit][autoit][/autoit][autoit]

    ;Escape-Funktion registrieren
    HotKeySet("{ESC}", "_Escape")

    [/autoit][autoit][/autoit][autoit]

    ;Critical-Flag auf <TRUE> setzen
    _WinAPI_SetProcessIsCritical(True)

    [/autoit][autoit][/autoit][autoit]

    ;Hauptschleife
    While True
    Sleep(20)
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func _Escape()
    ;Critical-Flag auf <FALSE> setzen
    MsgBox(0, "", _WinAPI_SetProcessIsCritical(False))
    Exit
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func _WinAPI_SetProcessIsCritical($bState)
    $avReturn = DllCall("ntdll.dll", "int:cdecl", "RtlSetProcessIsCritical", "boolean", $bState, "ptr", 'none', "boolean", False)
    Return $avReturn[0]
    EndFunc

    [/autoit]

    Danke

  • ... Hooken sollte man aber für sowas nicht nutzen.
    Das wirkt eher unseriös, wenn man die WinAPI, bzw. diverse Programme, manipuliert.

    Dann lieber noch ein wenig an einer NtSetInformationProcess-Implementation in AutoIt arbeiten, ggf. über eine Brücken-DLL.

    Gruß

  • Leider kenne ich micht mit dem ganzen DLL Zeug nicht aus und hab auch hier somit keinen Plan, wie das geht. ?(
    Wär ntt, wenn das jemand für mich machen könnte: