Autor Beitrag
colaka
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 200
Erhaltene Danke: 4

Win XP, W7
Delphi 2005 Prof.
BeitragVerfasst: Mo 03.01.11 11:31 
Hallo,

ich habe mir einen kleinen Editor geschrieben, den ich in Zukunft für *.txt, *.ini und *.php -Dateien verwenden möchte. Das Öffnen der genannten Dateien vom Programm aus funktioniert natürlich, aber ich möchte auch, daß sich statt des Windows-Editors nun der neue Editor öffnet, wenn ich auf eine Datei mit der entsprechenden Endung klicke. Deshalb habe ich mir mit Installshield ein Setup eingerichtet, wo ich solche Dateiverknüpfungen festlegen kann. Das habe ich jetzt soweit geschafft, daß der Editor startet, wenn ich auf eine *.txt-Datei klicke, aber nicht mehr. Es sollte halt im Editor dann auch noch die angeklickte Datei geöffnet werden.

Im Installshield habe ich bei den txt-Optionen noch die Möglichkeit, einen Befehl und ein Argument einzutragen. Doch was soll ich da eingeben?

Kann mir das jemand sagen?

Danke Ebi


Moderiert von user profile iconNarses: Topic aus Programmierwerkzeuge verschoben am Mo 03.01.2011 um 12:35


Zuletzt bearbeitet von colaka am Fr 07.01.11 10:20, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 03.01.11 11:56 
Nun, ich würde vorschlagen der Befehl ist das zu startende Programm, also deins. Und was du als Parameter erwartest, musst du doch selbst wissen. :gruebel:
colaka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 200
Erhaltene Danke: 4

Win XP, W7
Delphi 2005 Prof.
BeitragVerfasst: Mo 03.01.11 12:42 
Hallo,

ich kann mit der Antwort leider nicht viel anfangen. Der Editor startet ja bereits, wenn ich auf eine *.txt-Datei klicke, aber sie öffnet sich nicht. Ich brauche so eine Art Variable, die den Namen der angeklickten Datei an das Programm übergibt und dann das Programm dazu bringt, die Datei zu öffnen. Im Programm verwende ich dafür einen TOpenDialog.

Vielleicht könntest Du mir ein kleines Beispiel nennen.

Danke Ebi
Stundenplan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128
Erhaltene Danke: 32

Win 7
Delphi 7 Pers., C# (VS 2010 Express)
BeitragVerfasst: Mo 03.01.11 12:51 
Moin,
mit ParamStr() kannst du die Kommandozeilenparameter auslesen, in so einem steht auch der Dateiname. Wenn du es nicht anders festgelegt hast, in ParamStr(1).

Viele Grüße,
Stundenplan.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 03.01.11 13:39 
Meinst du vielleicht das "%1", das du auch in der Registry sofort bei den bereits eingetragenen Dateierweiterungen findest? Darin steht dann von Windows aus der Dateiname.
Stundenplan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128
Erhaltene Danke: 32

Win 7
Delphi 7 Pers., C# (VS 2010 Express)
BeitragVerfasst: Sa 08.01.11 10:59 
Ja, genau das meinte ich! :wink:
@colaka: Bei deinem Setup solltest du dort, wo du die Dateivernüpfungen eintragen kannst, nicht nur den Dateinamen zu deinem Programm festlegen, sondern dahinter auch ein "%1", also "C:\Wohinauchimmer.exe" "%1".
Dann startet Windows dein Programm, allerdings mit einem Parameter, nämlich dem Dateinamen (%1 ersetzt er durch diesen). Den kannst du dann in deinem Programm mit ParamStr(1) auslesen.

Viele Grüße,
Stundenplan.
colaka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 200
Erhaltene Danke: 4

Win XP, W7
Delphi 2005 Prof.
BeitragVerfasst: Sa 08.01.11 13:45 
Hallo,

zunächst mal vielen Dank für Eure Bemühungen.

Ich habe das jetzt soweit geschafft, daß mein Editor die *.txt-Datei öffnet, wenn sie sich auf C: oder in einem direkten Unterverzeichnis davon (also z.B. C:\Temp) befindet.

Wenn sich die *.txt-Datei dagegen im Ordner "Eigene Dateien" oder im Anwendungsdatenordner befindet, wird zwar der Editor aufgerufen, allerdings ohne die angeklickte Datei zu öffnen.

Den Editor installiere ich jetzt mit Hilfe von Installshield. Dort habe ich bei den Verknüpfungen als Argument %1 eingetragen, was aber offenbar keinerlei Auswirkung hat. Außerdem habe ich bei den Dateierweiterungen unter txt sowohl beim Befehl wie auch bei den Argumenten %1 eingetragen, was aber ebenfalls keinerlei sichtbaren Unterschied zeigt. Den Dateinamen selbst kann man leider nicht editieren, sondern nur aus einer DropDown-Liste auswählen.

Danke Ebi
Stundenplan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 128
Erhaltene Danke: 32

Win 7
Delphi 7 Pers., C# (VS 2010 Express)
BeitragVerfasst: Sa 08.01.11 14:26 
Du musst um das %1 noch Anführungsstriche ("%1") setzen, denn Leerzeichen (Eigene Dateien) gelten bei Kommandozeilenparametern als Begrenzer! :idea:

Für diesen Beitrag haben gedankt: colaka
colaka Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 200
Erhaltene Danke: 4

Win XP, W7
Delphi 2005 Prof.
BeitragVerfasst: Sa 08.01.11 14:41 
Ja danke,

das wars.

Gruß Ebi