Что нового

ProcessClose не завершает программу запущенную как служба

Turkish88

Новичок
Сообщения
2
Репутация
0
Код:
#include<WinAPI.au3>
#include<StructureConstants.au3>
#include<WindowsConstants.au3>
OnAutoItExitRegister("__Exit")
Global $trTime
$hStub=DllCallbackRegister("__Event","long","int;wparam;lparam")
$hModule=_WinAPI_GetModuleHandle(0)
$hHookM=_WinAPI_SetWindowsHookEx($wh_mouse_ll,DllCallbackGetPtr($hStub),$hModule)
While 1
    Sleep(10)
    $trTime+=200
    If $trTime=(1*60*1000) Then
        $trTime=0
        ProcessWaitClose(Run("run.exe",'',@SW_HIDE))
    EndIf
WEnd
Func __Event($nCode,$wPar,$lPar)
    If $nCode<0 Then Return _WinAPI_CallNextHookEx($hHookM,$nCode,$wPar,$lPar)
    Local $tKEY=BitAND($wPar,0xFFFF)
    If $tKEY=$wm_mousemove Then
        $trTime=0
                    ProcessClose("run.exe")
    EndIf
EndFunc
Func __Exit()
    _WinAPI_UnhookWindowsHookEx($hHookM)
    DllCallbackFree($hStub)
EndFunc

Есть такой скрипт который является скомпилированным ехе файлом и запускается как служба.
Запускается она как "системный" процесс и пораждаемая им run.exe также является системным.
Ф-ция ProcessClose не завершает программу run.exe при движении мышкой.
Если этот скрипт поместить в автозагрузку, то он запускается от имени пользователя и при движении мыши процесс успешно убивается
Как можно решить проблему, не смог найти как запустить службу от имени пользователя, вариант вручную настраивать имя пользователя и пароль хотелось бы обойти для универсального установшика
 
Верх