Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

AW: Erster Parameter geht verloren

  Alt 30. Aug 2011, 15: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);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

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