Autor Beitrag
Chatfix
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1583
Erhaltene Danke: 10

Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
BeitragVerfasst: Mo 24.06.02 18:49 
Mit Delphi ist es sehr leicht die beim Start des Programmes übergebene Parameter auszulesen.

hier ein Beispiel:
ausblenden Quelltext
1:
c:\test.exe parameter1 parameter2					

der erste Parameter wird mit ParamStr (1) ausgelesen. Z.B. so:
ausblenden Quelltext
1:
ShowMessage (ParamStr (1));					

Als Ergebnis bekommt man eine Meldung mit dem Inhalt des ersten Parameters. Den zweiten Parameter kann man mit ParamStr (2) auslesen...usw.

Bemerkung von Klabautermann:
Mit der Funktion ParamCount kann man übrigens auslesen wieviele Parameter dem Programm übergeben wurden. Ein besonderer Parameter ist ParamStr (0). Dieser ist immer vorhanden und enthält Pfad und namen der EXE. Also z.B. C:\Programme\Test.EXE

Bemerkung von Alfons-G:
Die sehr häufige Aufgabe, den Pfad der Anwendung herauszufinden, um z.B. auf INI- und Hilfedateien zuzugreifen, erledigt man mit einer Zeile:
ausblenden Quelltext
1:
strPfad := ExtractFilePath (ParamStr(0));					


Bemerkung von Popov:
Beachte aber bitte, daß ein Leerzeichen bei Parametern als Trennzeichen angesehen wird. Dem folgt dann (zumindest glaubt es das Programm) der nächste Parameter. Wenn du also ein Parameter wie diesen hast:

c:\program files\meine programme\test.exe

dann solltest du das in Anführungszeichen setzen. Dein Programm würde das sonst als drei Parameter ansehen.

"c:\program files\meine programme\test.exe"

Das Programm sieht das dann als ein Parameter an.

Bemerkung von MathiasSimmack:
Wenn du dein Programm aber z.B. in die Registry einträgst (dass es meinetwegen im Kontextmenü eines Dateityps erscheinen soll), dann solltest du dafür sorgen, dass der Eintrag für den Parameter von Anführungszeichen umschlossen ist. Am besten auch der des Programms, weil der User es ja in einen Ordner mit Leerzeichen kopieren könnte:
ausblenden Quelltext
1:
Reg.WriteString('IchSelbst','"' + paramstr(0) + '" "%1"');					

Die Auswertung solcher (über-)langen Parameter übernimmt dann die kompilierte Exe, ohne dass du selbst eine Zeile dafür schreiben müsstest.
Moderiert von user profile iconjasocul: Beitrag geprüft am 05.05.2006