Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Eigenes Programm automatisch über Dateiendung (doppelklick) starten (https://www.delphipraxis.net/197544-eigenes-programm-automatisch-ueber-dateiendung-doppelklick-starten.html)

nezumi7 15. Aug 2018 08:58

Eigenes Programm automatisch über Dateiendung (doppelklick) starten
 
Hallo,

ich möchte, dass mein Programm automatisch gestartet wird, wenn ich auf eine Datei mit einer bestimmten Dateiendung doppelklicke.

Beispiel: ich habe eine Datei 'C:\test\beispiel.html'. Wenn ich die doppelklicke soll sich mein Programm öffnen und dort die Datei in einem Webbrowser laden.

Das öffnen meines Programms ist ja eigentlich simpel, ich mache in Windows einmal Rechtsklick, "Öffnen mit..", suche mein Prog aus und klicke das Kästchen "immer mit diesem Programm öffnen" an (mehr brauch ich dafür nicht).

Das klappt auch, nur: wie erfährt mein Programm jetzt, welche Datei doppelgeklickt wurde? Ich muss ja z.B. bei

Delphi-Quellcode:
OleVariant(Webbrowser1.Document as IHTMLDocument2).Write(????)
irgendwas angeben..

Ich tappe da so im Dunkeln, dass es mir schon schwer fällt, gezielt nach irgendwas zu suchen. Also vorab schon mal sorry, sollte sich eine Lösung leicht über die Suchfunktion finden lassen...

Gruß,
Stephan.

dummzeuch 15. Aug 2018 09:05

AW: Eigenes Programm automatisch über Dateiendung (doppelklick) starten
 
Delphi-Quellcode:
if ParamCount > 0 then
  filename := ParamStr(1);

nezumi7 15. Aug 2018 09:18

AW: Eigenes Programm automatisch über Dateiendung (doppelklick) starten
 
Vielen Dank, das klappt! :thumb:

Keine Ahnung was ParamStr heißt, werde ich jetzt mal nachlesen....

KodeZwerg 15. Aug 2018 09:21

AW: Eigenes Programm automatisch über Dateiendung (doppelklick) starten
 
ParamCount gibt an wieviele Parameter beim Start übergeben wurden.
ParamStr(X) gibt den Parameter X wieder.
Delphi-Quellcode:
for i := 1 to ParamCount do
  MyParams := MyParams + ParamStr(i);
so könntest Du alle Parameter abgreifen und verwerten.

ParamStr(0) ist zum Beispiel immer Deine Anwendung samt Pfad.

nezumi7 15. Aug 2018 09:25

AW: Eigenes Programm automatisch über Dateiendung (doppelklick) starten
 
Danke KodeZwerg, wieder was dazu gelernt :wink:

KodeZwerg 15. Aug 2018 09:44

AW: Eigenes Programm automatisch über Dateiendung (doppelklick) starten
 
Gern geschehen. Meine Empfehlung für Dateinamen übergabe, pack diese innerhalb von Anführungszeichen, falls es Lücken(Leerstellen) im Namen gibt wird der sonst als zweiter Parameter gehandhabt.

Beispiel:
falscher Aufruf
ProjectX.exe Lade Datei Y.exe

richtiger Aufruf
ProjectX.exe "Lade Datei Y.exe"

Durch die "" wird es als ein Parameter betrachtet.

Delphi zerlegt mein Beispiel auf folgende Weise
ProjectX.exe Lade Datei Y.exe
Delphi-Quellcode:
for i := 1 to ParamCount do
  Memo1.Lines.Add(ParamStr(i));
Zitat:

Lade
Datei
Y.exe
Also 3 Parameter insgesamt.
Das dann ein Execute(Lade) schiefgeht ist klar.

ProjectX.exe "Lade Datei Y.exe"
Zitat:

Lade Datei Y.exe
Also 1 Parameter insgesamt.
Da funktioniert ein Execute(Lade Datei Y.exe) weil es nur ein Parameter ist.

Somit klappen auch Leerzeichen Problemlos.

Am besten Du wertest mal ein paar Beispiel-Aufrufe aus um zu sehen was tatsächlich passiert um es besser zu Verstehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz