Autor |
Beitrag |
colaka
      
Beiträge: 200
Erhaltene Danke: 4
Win XP, W7
Delphi 2005 Prof.
|
Verfasst: 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 Narses: 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
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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. 
|
|
colaka 
      
Beiträge: 200
Erhaltene Danke: 4
Win XP, W7
Delphi 2005 Prof.
|
Verfasst: 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
      
Beiträge: 128
Erhaltene Danke: 32
Win 7
Delphi 7 Pers., C# (VS 2010 Express)
|
Verfasst: 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
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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
      
Beiträge: 128
Erhaltene Danke: 32
Win 7
Delphi 7 Pers., C# (VS 2010 Express)
|
Verfasst: Sa 08.01.11 10:59
Ja, genau das meinte ich!
@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 
      
Beiträge: 200
Erhaltene Danke: 4
Win XP, W7
Delphi 2005 Prof.
|
Verfasst: 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
      
Beiträge: 128
Erhaltene Danke: 32
Win 7
Delphi 7 Pers., C# (VS 2010 Express)
|
Verfasst: 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! 
Für diesen Beitrag haben gedankt: colaka
|
|
colaka 
      
Beiträge: 200
Erhaltene Danke: 4
Win XP, W7
Delphi 2005 Prof.
|
Verfasst: Sa 08.01.11 14:41
Ja danke,
das wars.
Gruß Ebi
|
|
|