Autor Beitrag
Askger
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 26.08.08 09:48 
Ich möchte gerne bei meiner Service Anwendung die Startparameter auslesen, welche ich bei in der Windows Verwaltung angegeben habe. Leider bekomme ich bis auf Paramter 0 (Dateiname) nur leere Strings zurück, obwohl die Anzahl der leeren String der Anzahl meiner übergebenen Parameter übereinstimmt.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TMeinDienst.ServiceExecute(Sender: TService);
var
  Zaehler: Integer;
  Param: string;
begin
  // Startparameter auslesen
  for Zaehler := 0 to ParamCount - 1 do
  begin
    Param := ParamStr(Zaehler);
    //...
  end;
  //...
end;

Vielleicht kann mir jemand helfen, habe bislang nichts über das auslesen der Startparameter speziell im Fall einer Service Anwendung gefunden.

Moderiert von user profile iconNarses: Quote- durch Delphi-Tags ersetzt
Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Di 26.08.2008 um 10:13
ssb-blume
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 375
Erhaltene Danke: 7

XP, W7, W8
Deutschland
BeitragVerfasst: Mi 27.08.08 10:59 
Hallo,

Schau mal in die API:
LPTSTR GetCommandLine(VOID);

Es wird die Adresse der Befehlszeile des aufrufenden Prozesses übergeben mit:
vollständiger Pfad und Name des Programms, eingeschlossen in Anführungszeichen
und gefolgt von den Argumenten, getrennt mit Leerzeichen(nicht in Anführungszeichen).

_________________
Brain: an apparatus with which we think we think.
Askger Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 27.08.08 16:40 
Leider bekomme ich auch hier lediglich das Programm und Pfad zurück und nicht die in der Verwaltung beim Start übergebenen Parameter.

Update:

Habe jetzt die Lösung, es lag an der Funktion ParamStr(Index: Integer);, welche intern auch die Funktion LPTSTR GetCommandLine(VOID); verwendet die beide keine Werte zurückliefern.

Habe jetzt die übergebenen Parameter im Property Param[Index: Integer]; von TService gefunden :-)

Es scheint so als sind die Startparameter beim Starten des Dienstes in der Verwaltung und die Startparamter in der Kommandozeile ein extra Ding für sich.