Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Problem mit Environment beim Programmstart aus NT-Service (https://www.delphipraxis.net/160623-problem-mit-environment-beim-programmstart-aus-nt-service.html)

kuba 23. Mai 2011 11:51

Problem mit Environment beim Programmstart aus NT-Service
 
Hallo,

ich verwende in einem NT-Service diese Routine aus der Delphi-Praxis:http://www.delphipraxis.net/109191-p...klich-mal.html

Das funktioniert soweit ganz gut. Mir ist jedoch aufgefallen, dass wenn ich z.B. den Internet Explorer starte, nicht die Favoriten angezeigt werden, die im Benutzerprofil hinterlegt sind.

Nach langem suchen habe ich herausgefunden, dass in der Registry eine neue SID angelegt wird, wenn ich den Internet Explorer mit der o.g. Routine aus meinem NT-Service starte und zwar mit folgendem Aufbau: S-1-5-18
Die SID des Benutzers hat jedoch folgenden Aufbau: S-1-5-21-3739861232-493498504-445173987-1000

Offensichtlich wird da ein temporäres Environment erzeugt. Ist es möglich (wenn ja wie) das Programm im "richtigen" Benutzerkontext zu starten ??

KUBA

Luckie 23. Mai 2011 12:09

AW: Problem mit Environment beim Programmstart aus NT-Service
 
Einfach mal die Suche benutzen. Hier im Forum suchendienst benutzer

kuba 23. Mai 2011 12:36

AW: Problem mit Environment beim Programmstart aus NT-Service
 
Hallo,

erstmal vielen Dank, die Suche brachte mich hierhin: http://www.delphipraxis.net/160343-j...kontext-2.html

Ich will das gerade mal ausprobieren, beim Compilieren bekomme ich jedoch eine Fehlermeldung: [DCC Fehler] servicepas.pas(163): E2003 Undeklarierter Bezeichner: 'InstallInlineHook'

In welcher Unit finde ich 'InstallInlineHook' ?? Und wo finde ich Infos zu dem toten Link 'RegOverwritePredefKey' ??

Fehlt da im Code nicht etwas ??
In diesem Teil:
Delphi-Quellcode:

var
  ThreadParam: PThreadParam;
begin
  New(ThreadParam);
  ThreadParam^.UserToken := UserToken;
  ThreadParam^.Thread := lpStartAddress;
  ThreadParam^.Param := lpParameter;
  Result := O_CreateThread(lpThreadAttributes, dwStackSize, @LocalThread,
    ThreadParam, dwCreationFlags, lpThreadId);
end;
Da ist ein begin und ein end, aber keine Funktion deklariert...

kuba


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz