![]() |
mehrere markierte Dateien aus Explorer an Anwendung
Hallo,
ich möchte mein Programm im Kontextmenü von einigen Dateitypen haben, das klappt auch ganz gut. Das problem ist wenn mehrere Dateien markiert sind und ich mein Programm dann aus dem Kontextmenü aufrufe bekommt mein Programm über Paramstr () nur eine Datei übergeben und wird auch nur einmal gestartet. Ich habe hier im Forum gelesen das ich mit einer Dll Datei Arbeiten muß. Leider habe ich keine genauere Beschreibung gefunden wie das im Detail aussieht. Vielleicht hat ja schon jemand von euch das selbe Problem gehabt und kann mir weiterhelfen. Schon mal Danke im vorraus. mfg lordcroc |
Re: mehrere markierte Dateien aus Explorer an Anwendung
Eigentlich sollte Windows dein Programm für jede Datei starten. Und hier im Forum solltest du auch eine Lösung für dein Problem finden. Eine Suche nach
![]() |
Re: mehrere markierte Dateien aus Explorer an Anwendung
hab schon die suche als erstes angewendet, aber nichts insofern gefunden was mir einen bestimmten weg für eine Lösung bietet oder Ich hab auch vielleicht nicht nach den richtigen Begriffen gesucht. hab zwar das mit einer Instanz gelesen mir fehlt aber irgendwie so der Zusammenhang.
mfg Lordcroc |
Re: mehrere markierte Dateien aus Explorer an Anwendung
der explorer startet für jede ausgewählte datei eine neue instanz deines programms und übergibt jeweils immer nur eine gewählte datei. Du hast jetzt drei Möglichkeiten das zu verhindern:
1. Du erstellst einen Semaphore (oder ähnliches) beim start deiner ersten instanz und beim start weiterer instanzen kann der semaphore dann nicht noch einmal erstellt werden, weil er ja schon existiert. du sendest mittels SendMessage eine Message mit dem übergebenen Parameter an dein erstes Programm und lässt diese Instanz beenden. 2. Du machst das mittels eines DDE Servers. Ganz einfach in delphi die komponente drauf ziehen, aktivieren und dann bekommst du da alle parameter übergeben. 3. Du machst das mittels ShellExtensions. Da erstellst du eine DLL, die sich ins Kontextmenü einbindet. Hier bist du verdammt flexibel, weil du wirklich alle selektierten Parameter auf einmal auslesen kannst und noch einige andere einstellungen und überprüfungen machen kannst. Bei Delphi 7 wird da ein Beispiel mitgeliefert. Schau mal unter demos im delphi verzeichnis. Ich hab das selbst auch mal gemacht. als erstes 1., dann 2. und dann 3. Mein Problem dabei war, dass du bei 1. und 2. die Parameter nach der Reihe geschickt bekommst und nicht weißt, wann der letzte parameter angekommen ist. und ich wollte eben eine funktion ausführen, die aber erst dann startet, wenn ich wirklich alle selectierten dateien von explorer geschickt bekommen hab. und das ging mit 1. und 2. nicht. (oder nur unschön mittels eines timers, jedoch weiß man ja nicht wie ausgelastet der pc ist und wie hoch man den timer setzen muss. es ist auf jeden fall nicht verkehrt sich mit ShellExtensions aus einander zu setzten. gruß |
Re: mehrere markierte Dateien aus Explorer an Anwendung
vielen Dank, werde mich jetzt in den nächsten Tagen mal damit etwas befassen.
mfg lordcroc |
Re: mehrere markierte Dateien aus Explorer an Anwendung
Ich hab's so gemacht, geht einwandfrei:
![]() |
Re: mehrere markierte Dateien aus Explorer an Anwendung
Hi,
Danke aber deine lösung gehört wie mumu es geschrieben hat unter Kategorie 1 von ihm aus und das bedeutet ich weiß nicht wann die letzte nachricht angekommen ist, dadurch keinen automatischen Vorgang anstarten. Also variante 3 Scheint bisher die beste lösung für mich zu sein, aber auch die schwierigste. Trotzdem vielen Dank. mfg lordcroc |
Re: mehrere markierte Dateien aus Explorer an Anwendung
Ich habe dir doch den Hinweis mit oneinst gegeben. das macht genau das, was du willst.
|
Re: mehrere markierte Dateien aus Explorer an Anwendung
hmm luckie auch oneinst fällt unter 1.
du weißt hier nicht, wann du vom explorer die letzte datei übergeben kriegst. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz