Einzelnen Beitrag anzeigen

Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#9

Re: Serverzugriff aus Service

  Alt 2. Okt 2007, 12:14
Die Meldung, dass der Dienst angehalten wurde kommt daher, dass deine Execute Methode ja sofort wieder beendet wird. Die Methode ist genau dieselbe, wie eine Threadmethode. Der Thread wird zerstört sobald die End; Zeile abgearbeitet wurde.

Man kann eine Nachrichtenbox ausgeben lassen, indem man MessageBox der WinAPI verwendet und MB_SERVICENOTIFICATION verwendet. Oder man macht es eben über ein extra Programm. Jedoch ist ab XP und Win2003 das Problem, welcher Benutzer die Nachricht sehen soll. Schließlich können mehrere Benutzer gleichzeitig eingeloggt sein, siehe Terminal Services.

Wenn du deinen Dienst unter einem normalen Benutzer laufen lässt, dann ist das ok, sofern der Benutzer kein Administrator ist. Das verhindert, dass Fehler in deinem Programm, es anderen Benutzern ermöglicht Dinge zu machen, die sie eigentlich nicht dürften.
Du solltest daher die Ausführung unter dem Dienst Konto verweigern (GetUserName = 'SYSTEM').
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat