![]() |
Parameter
Hallo
Ich komme mit ParamStr nicht so ganz nach. Ich habe folgendes Programm bereits geschrieben.
Delphi-Quellcode:
Nun möchte ich Pfad\Datei als Parameter mitgeben, wenn ich das Programm mit Ausführen starte
procedure TForm1.FormCreate(Sender: TObject);
begin ShellExecute(application.Handle, 'print','Pfad\Datei', nil, nil, SW_Show); end; zB. Pfad\MeinProgramm.exe Pfad\Datei Danke |
Re: Parameter
Einfach:
Delphi-Quellcode:
Ich hoffe mal, dass ich das noch richtig im Gedächtnis habe ^^
ShellExecute(application.Handle, 'print','Pfad\Datei', 'Parameter', nil, SW_Show);
Und abfragen dann über
Delphi-Quellcode:
EDIT:
ParamStr(1)
Zitat:
|
Re: Parameter
(1) paramstr (0)
(2) Application.exename |
Re: Parameter
das andere programm startest du so:
Delphi-Quellcode:
und die auswertung im ersten programm folgendermaßen
ShellExecute(Handle, 'open', 'exename', 'Pfad\Datei', nil, SW_SHOWNORMAL);
Delphi-Quellcode:
if ParamCount > 0 then
Showmessage(ParamStr(1)) // gibt dann Pfad\Datei aus |
Re: Parameter
Und net vergessen Pfad\Datei in " einzuschließen, sonst kann es dir passieren, daß deine Dateiangaben auf mehrere Parameter aufgesplittet werden. (wenn z.B. Leerzeichen enthalten sind)
Code:
ShellExecute(application.Handle, 'print','[color=red]"[/color]Pfad\Datei[color=red]"[/color]', nil, nil, SW_Show);
|
Re: Parameter
Anscheindend Versteht ihr mich falsch oder ich euch.
Ich habe hier mein Druckprogramm "MyProgramm.exe" jetzt möchte ich das mit der Eingabe aufforderung starten und gleichzeitig dem Programm den Pfad und Dateinamen des Files geben welches es ausgeben soll. In der Eingabeaufforderung sieht das dann so aus: C:\MyProgramm.exe -"C:\Dokumente und Einstellungen\Benutzer\Eigene Dateien\File.txt" |
Re: Parameter
Wie jetzt? Per Eingabeaufforderung, oder per ShellExecute? Drück dich doch mal deutlich aus. Wie es per ShellExecute geht wurde es dir doch jetzt mehrfach gesagt.
Falls es dir darum geht die Parameter mit denen deine Anwendung gestartet wurde zu erfahren (Danach hast du aber bisher nun wirklich nicht geftag), dann fragst du eben ParamStr ab. ParamStr[0] ist der Pfad und Name deines Programmes, ParamStr[1] ist der erste Parameter, ParamStr[2] der zweite. Vor dem Auslesen solltest du allerdings per ParamCount überprüfen, wieviele Parameter angegeben wurden. |
Re: Parameter
Moin Sysadmin,
dann könntest Du es so aufrufen:
Delphi-Quellcode:
[EDIT]
ShellExecute(0,'open','cmd.exe',nil,PChar('/C "C:\MyProgramm.exe" "C:\Pfad zu der Datei\Datei.txt"'),SW_SHOW);
Ggf so:
Delphi-Quellcode:
wobei Du hier, wie schon angesprochen wurde, erst einmal prüfen solltest, ob paramstr(1) überhaupt etwas enthält.
ShellExecute(0,'open','cmd.exe',nil,PChar('/C "C:\MyProgramm.exe" "'+paramstr(1)'"'),SW_SHOW);
[/EDIT] |
Re: Parameter
Habe mein Problehm gelöst. Vielen Dank an für eure Hilfe.
Mein Code:
Delphi-Quellcode:
if ParamCount > 0 then
ShellExecute(application.Handle, 'print', PChar(ParamStr(1)), nil, nil, SW_Show); |
Re: Parameter
Wobei ich mir jetzt gerade nicht ganz sicher bin, ob ParamCount nicht auch ParamStr[0] mitzählt... :gruebel: Ich denke eigentlich schon. Daher solltest du evtl auf "ParamCount > 1" prüfen.
Probiers mal aus, ich hab grade leider kein Delphi zur Hand. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 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