Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Parameterübergabe bei "öffnen mit" (https://www.delphipraxis.net/66345-parameteruebergabe-bei-oeffnen-mit.html)

Gausi 28. Mär 2006 19:51


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 Luckies Seite. Die scheint in der Anwendung am einfachsten zu sein - man muss ja praktisch nur die Unit in die Uses-Liste einfügen.

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 DF)

rantanplan99 28. Mär 2006 20:12

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

marabu 28. Mär 2006 20:18

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

Gausi 28. Mär 2006 20:21

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:
Showmessage(IntToStr(ParamCount));
im OnShow die Anzeige eines kleinen Fensters mit einer 1 drin. Das ist es also nicht.

@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.

Luckie 28. Mär 2006 20:26

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.

Gausi 28. Mär 2006 20:30

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:

Zitat von Gausi
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.

ja auch nicht funktionieren, oder?

Es funktioniert halt nur dann nicht, wenn ich das über "öffnen mit" versuche.

Luckie 28. Mär 2006 20:36

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.

Gausi 28. Mär 2006 20:47

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.

Matze 28. Mär 2006 21:02

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.

Gausi 29. Mär 2006 19:11

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 09:51 Uhr.
Seite 1 von 2  1 2      

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