Den Nt-Service habe ich nicht selbst geschrieben sondern aus dem
Internet.
Anscheinend funktioniert die Übergabe des Usertoken nicht unter Vista/7. Der Service funktioniert auch nicht unter 64Bit Betriebssystemen, da hab ich aber mittlerweile eine Lösung gefunden damit es doch funktioniert.
Würde mich sehr freuen wenn mir jemand einen Tip geben könnte was da falsch läuft, danke !
KUBA
PS: 64 Bit Anpassung...
Delphi-Quellcode:
function GetShellProcName: String;
var
Reg : TRegistry;
begin
if IsWin64 then Reg := TRegistry.Create(KEY_ALL_ACCESS OR KEY_WOW64_64KEY);
if not IsWin64 then Reg := TRegistry.Create(KEY_READ);
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKeyReadOnly('Software\Microsoft\Windows NT\CurrentVersion\WinLogon');
Result := Reg.ReadString('Shell');
finally
Reg.Free;
end;
end;
function GetShellHandle: THandle;
var
Pid : THandle;
ShellProcName : String;
begin
Result := 0;
ShellProcName := GetShellProcName;
if Length(ShellProcName) > 0 then
begin
Pid := ProcessIDFromAppname32(ShellProcName);
if Pid <> 0 then
Result := OpenProcess(PROCESS_ALL_ACCESS, False, Pid);
end;
end;