Einzelnen Beitrag anzeigen

Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Internet Explorer aus Systemdienst starten

  Alt 1. Mär 2011, 19:43
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;
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat