Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.048 Beiträge
 
Delphi 12 Athens
 
#2

AW: Erster Parameter geht verloren

  Alt 30. Aug 2011, 16:09
Eigentlich steckt in MSDN-Library durchsuchenGetCommandLine folgendes drin EXEPath Param1 Param2 ... ,
wobei in EXEPath der eigentlich aufgerufene Pfad der ausgeführten EXE drinsteht.
(ruft man z.B. nur "MeinProgramm" über CMD auf, dann steht auch nur das dort drin)

Delphi-Referenz durchsuchenParamStr(0) ignoriert deshalb diesen Wert und gibt stattdessen MSDN-Library durchsuchenGetModuleFileName(0) zurück.


Zitat von MSDN: CreateProcess:
__in_opt LPCTSTR lpApplicationName,
__inout_opt LPTSTR lpCommandLine
Du mußt also noch einen wert mehr angeben
Also entweder einen "Dummywert" oder besser nochmals den EXEPath (Delphi-Programme stört es zwar nicht, aber andere Programme vielleicht doch) .


Probier es einfach mal ShowMessage(GetCommandLine); .

Quasi in etwa so:
Delphi-Quellcode:
Params := 'Halli hallo wie gehts denn so?';
Result := CreateProcess(PChar(Programm), PChar('"' + Programm + '" ' + Params), nil, nil, true,
  CREATE_DEFAULT_ERROR_MODE, nil, PChar(ExtractFileDir(Programm)), StartupInfo, ProcessInfo);
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (30. Aug 2011 um 16:15 Uhr)
  Mit Zitat antworten Zitat