Schönen guten Sonntag
Ich möchte jedoch mehr als "Doppelklick öffnet Datei mit meinem Programm".
Soweit wie in diesem Code (von Christian Seehase) angegeben, habe ich es auch geschafft.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
if paramcount > 0 then
begin
// z.B. übergebenen Datei in ein Memo laden
// oder was auch sonst mit der Datei geschehen soll.
Memo1.Lines.LoadFromFile(paramstr(1));
end;
end;
mein Problem ist es jedoch, bei einem weiteren Klick wird das gleiche Programm noch einmal gestarten und die Datei geladen. das möchte ich gerne verhindern. Die Datei soll mit dem (wenn es bereits gestartet ist) Programm geladen werden. So wie bei dem Windows-Mediaplayer, beim anklicken einer *.wav-Datei. Da wird auch kein neuer Player geöffnet. Ich habe mich schon Tagelang hier im Forum umgeschaut, aber noch nichts gefunden
Ich habe bei
http://www.delphi-fundgrube.de/faq03.htm zwar das gefunden: (hier ein Ausschnitt) "Falls eine laufende Instanz eines Programms eine verknüpfte Datei öffnen soll, muß das Programm auf eine Message reagieren:"
Delphi-Quellcode:
type
TMainForm = class(TForm)
Private
procedure NeedFileOpen(var Msg: tMessage); Message wmMainInstanceOpenFile;
[..]
procedure TMainForm.NeedFileOpen(var Msg: tMessage);
var Path : string;
PC : array[0..MAX_PATH] of Char;
begin
GlobalGetAtomName(Msg.wParam, PC, MAX_PATH);
Path := Trim(StrPas(PC));
Datei_laden(Path); // Den Code zum Laden der Daten ausführen
end;
Leider bekam ich bei
Message wmMainInstanceOpenFile;
bereits eine Fehlermeldung.
Gibt es ein Lösung?
mfg
Beatles