AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mehre Dateien an ein Programm übergeben

Offene Frage von "Marco Steinebach"
Ein Thema von Marco Steinebach · begonnen am 25. Aug 2009 · letzter Beitrag vom 25. Aug 2009
Antwort Antwort
Marco Steinebach

Registriert seit: 4. Aug 2006
502 Beiträge
 
Delphi 5 Enterprise
 
#1

Mehre Dateien an ein Programm übergeben

  Alt 25. Aug 2009, 17:53
Hallo zusammen,
Ich habe ein Prog geschrieben, dem man Dateien zur Verarbeitung übergeben kann.
Mein Problem: Wenn ich im Explorer mehrere Dateien markiere, und dann via "öffnen mit..." mein Programm aufrufe, kommt nur eine der Dateien wirklich beim Programm an. Wenn ich die Dateien nacheinander ans Programm übergebe, also alle einzeln, klappt das ganze ganz prima.
Mein Lösungsansatz war via Mutex zu verhindern, daß mehrere Instanzen aufgerufen werden, daß klappt auch, aber, wie gesagt, es kommen nicht alle Dateien an.
Hat jemand 'ne Idee, woran es liegen könnte?
Gibt es eine andere Lösungsmöglichkeit, als zu verhindern, daß mehrere Instanzen aufgerufen werden?
Für Tips wäre ich wirklich sehr dankbar!
Viele Grüße
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

Re: Mehre Dateien an ein Programm übergeben

  Alt 25. Aug 2009, 18:04
Du könntest doch alle Dateien von ParamStr(1) bis ParamStr(ParamCount) abarbeiten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Marco Steinebach

Registriert seit: 4. Aug 2006
502 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Mehre Dateien an ein Programm übergeben

  Alt 25. Aug 2009, 18:13
Zitat von DeddyH:
Du könntest doch alle Dateien von ParamStr(1) bis ParamStr(ParamCount) abarbeiten.
nein, geht nicht, denn hier wird auch nur eine Datei übergeben, aber nicht alle markierten. *grummel!
Marco Steinebach
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

Re: Mehre Dateien an ein Programm übergeben

  Alt 25. Aug 2009, 18:23
Und wenn Du die markierten Dateien mal im Explorer auf die Exe ziehst? Nur eine Idee.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Marco Steinebach

Registriert seit: 4. Aug 2006
502 Beiträge
 
Delphi 5 Enterprise
 
#5

Re: Mehre Dateien an ein Programm übergeben

  Alt 25. Aug 2009, 18:34
Hallo,
Zitat von DeddyH:
Und wenn Du die markierten Dateien mal im Explorer auf die Exe ziehst? Nur eine Idee.
dann geht es, jedenfalls gibt's dann viele paramstr's.
Mein problem, da das Prog auch von blinden Menschen bedient werden soll, ist das drag-and-drop leider nicht zu gebrauchen.
Das muß doch auch irgendwie mit "öffnen mit..." gehen, oder?
Viele Grüße
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

Re: Mehre Dateien an ein Programm übergeben

  Alt 25. Aug 2009, 18:45
Ich weiß nicht, ob es auch einfacher geht, aber wie wäre es so: die zuerst gestartete Instanz erhält den Zuschlag, alle weiteren Instanzen versenden ihre Parameter per WM_COPYDATA o.ä. an die erste und beenden sich. Diese erste Instanz sammelt alles ein und beginnt dann zu arbeiten. Klingt zwar umständlich, könnte aber klappen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Marco Steinebach

Registriert seit: 4. Aug 2006
502 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: Mehre Dateien an ein Programm übergeben

  Alt 25. Aug 2009, 18:53
Hallo
Zitat von DeddyH:
Ich weiß nicht, ob es auch einfacher geht, aber wie wäre es so: die zuerst gestartete Instanz erhält den Zuschlag, alle weiteren Instanzen versenden ihre Parameter per WM_COPYDATA o.ä. an die erste und beenden sich. Diese erste Instanz sammelt alles ein und beginnt dann zu arbeiten. Klingt zwar umständlich, könnte aber klappen.
stimmt, klappt auch, so umständlich find' ich's gar nicht. Aber, hier tritt leider das selbe Problem auf. Wenn man alles nacheinander aufruft, also erst return auf Datei1, dann return auf Datei2, klappt alles ganz klasse, und alle Dateien kommen bei der ersten instanz an.
Macht man es via markieren, kommt nur eine Datei an.
Mir ist überhaupt nicht klar, wo das problem ist, und auch nicht, wie windows mehrere Dateien an eine Anwendung übergibt. Ich weiß nichtmal, wonach ich suchen soll.
Viele Grüße
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#8

Re: Mehre Dateien an ein Programm übergeben

  Alt 25. Aug 2009, 18:57
Es scheint, als ob sich Windows im "SendTo"-Ordner anders verhält als sonst. Da weiß ich leider im Moment auch nicht weiter, sry
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

Re: Mehre Dateien an ein Programm übergeben

  Alt 25. Aug 2009, 18:58
Zitat von DeddyH:
... die zuerst gestartete Instanz erhält den Zuschlag, alle weiteren Instanzen versenden ihre Parameter per WM_COPYDATA o.ä. an die erste und beenden sich. Diese erste Instanz sammelt alles ein und beginnt dann zu arbeiten. Klingt zwar umständlich, könnte aber klappen.
Genau das wird von der Klasse TJclAppInstances, Unit JclAppInst aus der JCL so unterstützt.
Es gibt unter anderem die Methoden SendCmdLineParams() und SendString(), mit denen die später gestartete Instanzen
ihre Daten an die 1. Instanz übergeben kann.

Ansonsten kann man IMHO auch etwas mit DDE machen - aber schon beim Gedanken an DDE schüttelt es mich.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 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