![]() |
Parameterübergabe bei "öffnen mit"
Durch gründliche Suche, die auch verschiedene funktionierende Ansätze geliefert hat, habe ich es nun hinbekommen, dass meine Anwendung (ein mp3-Player) nur einmal gestartet werden kann, und dass evtl. übergebene Parameter an die bereits laufende Instanz weitergereicht werden.
Ich verwende die Unit in OneInst.zip von ![]() Wenn ich nun meinen Player als Standardanwendung für mp3s festlege, mehrere Dateien im Explorer markiere und Enter drücke (oder "öffnen" auswähle), dann rutschen auch brav alle Dateien in die Playlist. Wenn ich allerdings mehrere Dateien markiere, und über den "öffnen mit"-Dialog meinen Player auswähle, dann kommt immer nur eine Datei an. (Diese Vorgehensweise ist ja nicht so abwegig, wenn man nicht direkt die Dateizuordnungen ändern möchte.) Woran liegt das, und wie kann ich das ggf. ändern? (Ist übrigens ein Crossposting zum ![]() |
Re: Parameterübergabe bei "öffnen mit"
Hi
ich rate einfach mal blind drauf los *g* hast du mal die Anzahl der übergebenen Parameter überprüft? Evtl. werden bei "Öffnen mit..." ja alle markierten Dateien der Anwendung übergeben. Ist aber nur eine vermutung dass es so sein könnte. rantanplan |
Re: Parameterübergabe bei "öffnen mit"
Hi.
Vielleicht liegt es auch daran, dass das Command zum zugehörigen Verb "open" in der Registrierung den Standardparameter %1 aufweist. Grüße vom marabu |
Re: Parameterübergabe bei "öffnen mit"
Ja, das war auch meine erste Vermutung. Habs gerade noch mal überprüft: Ein "öffnen mit Nemp" von 15 markierten Dateien bewirkt mit einem kleinen
Delphi-Quellcode:
im OnShow die Anzeige eines kleinen Fensters mit einer 1 drin. Das ist es also nicht.
Showmessage(IntToStr(ParamCount));
@marabu: Meinst du also, das könnte man beheben, wenn man beim open noch ein %2, %3, ...einfügt? :gruebel: (Edit: Nö, klappt auch nicht ;-)) (Edit:) Nochwas: Meine alte Winamp-Version (2.8irgendwas) zeigt das gleiche Verhalten. |
Re: Parameterübergabe bei "öffnen mit"
Das wird daran liegen, dass Windows für jede Datei eine neue Instanz deines Programmes startet, woher soll es auch wissen, dass es das nicht tun soll, da du baer nur eine Instanz zu läßt, hast du in der einen auch nur eine Datei. Du musst also, bevor du die weiteren Instanzen bendest, die Paramter an die erste weitergeebn. Das geht aber auch mit der Unit von Nico von meiner Homepage.
|
Re: Parameterübergabe bei "öffnen mit"
Ja, Luckie, das ist mir schon klar ;-). Das mache ich ja auch (hoffe ich). Denn sonst würde das
Zitat:
Es funktioniert halt nur dann nicht, wenn ich das über "öffnen mit" versuche. |
Re: Parameterübergabe bei "öffnen mit"
Ach so. Hm, da weiß ich jetzt auch nicht weiter. Scheint aber Standardverhalten zu sein: Meherer Textdateien markiert und über "Öffnen mit..." an Notepad geschickt und es geht nur einmal auf mit einer Datei.
|
Re: Parameterübergabe bei "öffnen mit"
Mist. Dann hat sich das wohl erledigt. :?
Mich würde nur mal interessieren, wo da in etwa der Unterschied zum normalen öffnen besteht. Ich meine, es macht ja in gewisser Weise Sinn (dass nur die fokussierte(?) Datei so geöffnet wird), denn wenn man ein Bild, eine Textdatei, ein Mp3 und einen Film mit derselben Anwendung zu öffnen versucht, könnte es Probleme geben. Das Problem taucht allerdings auch dann auf, wenn ich eine einzelne Filmdatei mit Word öffnen möchte. |
Re: Parameterübergabe bei "öffnen mit"
Hi
Der Rechtsklick muss die Datei unterm Cursor irgendwie fokusieren, auch wenn man das nicht sieht. Ich habe auch eine Anwendung, die nur einmal geöffnet werden kann und da verhält sich das genauso und ich habe keine fertigen Units verwendet. Ich habe nun einige Anwendungen getestet und alle verhalten sich gleich, also das scheint normal zu sein und hängt daher wohl mit Windows zusammen und nicht mit der Anwendung selbst. |
Re: Parameterübergabe bei "öffnen mit"
Naja, dann muss ich mich wohl damit abfinden. Habe das auch noch mal mit dem Windows-Media-Player probiert - da auch dort dieser Effekt auftritt, werde ich wohl keine weiteren Gedanken an dieses Problem verschwenden.
Danke trotzdem ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:29 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