![]() |
Erster Parameter geht verloren
Hallo!
Ich benutze folgenden Code:
Delphi-Quellcode:
Und ich rufe damit ein Programm aus, das einfach nur die Parameter anzeigt:
Result := CreateProcess(PChar(Programm), 'Halli hallo wie gehts denn so?'{PChar(CommandLine)}, nil, nil, true,
CREATE_DEFAULT_ERROR_MODE, nil, PChar(ExtractFilePath(Programm)), StartupInfo, ProcessInfo);
Delphi-Quellcode:
Und dabei geht immer der erste Parameter verloren. Das Programm zeigt also an:
for i := 0 to ParamCount do begin
MemoParams.Lines.Add(ParamStr(i)); end; -NameDerExe- hallo wie gehts denn so? Theoretisch kann ich als ersten Parameter ja einfach irgendeinen "Opfer-Wert" nehmen, der dann wegfällt. Aber ich hatte das Problem schon öfters und ich frage mich was dahinter steckt... Mache ich hier etwas falsch, oder gibts da einen Trick den ich nicht kenne? Grüße blablab |
AW: Erster Parameter geht verloren
Eigentlich steckt in
![]()
Delphi-Quellcode:
,
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) ![]() ![]() Zitat:
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
Delphi-Quellcode:
.
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); |
AW: Erster Parameter geht verloren
Normalerweise (So auch in der Remark-Section von msdn) gibt man für Applicationname "null" an und für Commandline eben das "Programm"+Space+Parameter, so wie in einer Batch.
Und das ist (wie vorposter geschrieben) wahrscheinlich nur wegen der C-kompatibilität und argc. |
AW: Erster Parameter geht verloren
Vielen Dank!!!
Wieder etwas dazugelernt... :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz