Entwickler-Ecke

Sonstiges (Delphi) - Dateien mit meinem Prog öffnen


Alex_ITA01 - Mi 23.06.04 09:26
Titel: Dateien mit meinem Prog öffnen
Hallo,
ich weiß diese Frage gab es schon aber ich habe noch eine etwas speziellere Frage.
Ich kann EINE Datei im Windows öffnen mit meinem Programm
Source:
FORMSHOW

Delphi-Quelltext
1:
2:
3:
4:
  if (paramcount > 0and FileExists(paramstr(1)) then
  begin
    FileList.Add(paramstr(1));
  end;


Nur wollte ich jetzt gerne mehrere Dateien gleichzeitig öffnen mit meinem Programm.Also mehrere markieren und sagen öffnen mit...
Ich habe schon versucht eine for schleife drum herum zu bauen die bis anzahl paramcount zählt aber das geht auch nicht.
Kann mir bitte jemand helfen?

Danke
Alex


inselberg - Mi 23.06.04 09:37


Delphi-Quelltext
1:
2:
3:
for i:=1 to paramcount-1 do
 if FileExists(paramstr(i)) then   
   FileList.Add(paramstr(i));


sowas?
Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.


raziel - Mi 23.06.04 09:38

Habs grad mal ausprobiert. Anscheinend wird von Windows nur die ZULETZT ausgewählte Datei übertragen bzw. die, auf die Rechtsgeklickt wird...

raziel


Delete - Mi 23.06.04 10:53

Der Rest wird auch übertragen, nur eben immer wieder an eine neue Instanz deines Programmes. Du musst also den Mehrfachstart verhindern und bei jedem weiteren Start den Parameter (per WM_COPYDATA eventuell) an die erste Instanz schicken.

Warum zur Hölle wird an keiner Stelle darauf hingewiesen, dass [url=http://www.delphipraxis.net/topic28294_datei+mit+meinem+programm+oeffnen.html]HIER[/url] auch gepostet wurde? :evil: Da hätte ich mir hier die Mühe sparen können.


Tino - Mi 23.06.04 12:54

Hallo Alex,

schau dir mal diesen FAQ Beitrag an: ...die Startparameter einer anderen Instanz übergeben? [http://www.delphi-forum.de/viewtopic.php?t=20679]

Gruß
Tino


raziel - Mi 23.06.04 13:33

Luckie hat folgendes geschrieben:
Der Rest wird auch übertragen, nur eben immer wieder an eine neue Instanz deines Programmes.

:? Klingt einleuchtend nur hab ich folgendes Problem: Wähle ich mehrere Dateien im Explorer aus und gehe auf "Öffnen mit... > Project 1", wird das "Project 1" nur einmal gestartet. Gleiches gilt z.B. für einen Browser oder MS Word: Wähle ich mehrere aus und gehe auf "Öffnen mit... > Word/Firefox" wird nur eine Instanz gestartet und nur die zuletzt ausgewählte Datei geöffnet.

raziel


Delete - Mi 23.06.04 13:37

7 Textdateien markiert, Kontextmenü -> "Öffnen" = 7 Instanzen von Notepade mit je einer ausgewählten Datei. Wird also daran liegen, wie das Programmiert wurde. Wahrscheinlich wird nur ein Mehrfachstart verhindert und mehr nicht.


raziel - Mi 23.06.04 14:07

Scheint wohl ein Fehler in meinen Einstellungen zu sein :? :
3 Textdocs ausgewählt: RK -> Öffnen -> nichts passiert
3 Textdocs ausgewählt: RK -> Öffnen mit -> Notepad -> zuletzt markiertes wird geöffnet
3 Textdocs ausgewählt: ENTER -> 3 notepads geöffnet
1 Textdoc ausgewählt: RK -> Öffnen -> wird geöffnet

hat sich (von meiner seite) erledigt, sorry fürs OT.

raziel


Meillo - Mi 23.06.04 14:12

raziel hat folgendes geschrieben:
Scheint wohl ein Fehler in meinen Einstellungen zu sein :? :
3 Textdocs ausgewählt: RK -> Öffnen -> nichts passiert

... öffnet bei mir 3x Notepad ;) (Win2k)