Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Problem mit Dateiaufruf per paramstr (https://www.delphipraxis.net/7254-problem-mit-dateiaufruf-per-paramstr.html)

Daniel B 22. Aug 2003 14:19

Re: Problem mit Dateiaufruf per paramstr
 
Warum macht Ihr denn nicht endlich ein neuen Thread auf? Das hier hat doch vornt und hinten nichts mehr mit dem Ursprungsthema zutun. Danke!

wb32 22. Aug 2003 14:31

Re: Problem mit Dateiaufruf per paramstr
 
meinste das dann noch einer versteht um was es geht ???
ich weiß nich aber ich glaube dann kann ich 50% von dem was hier steht nochmal in dem neuen Thread erklären :(...

negaH 22. Aug 2003 14:54

Re: Problem mit Dateiaufruf per paramstr
 
Dieses ShellExt Demo zeigt alles was du benötigst. Es registriert eine Schnittstelle aus deiner DLL die zu den registrierten Dateitypen einen Menueintrag im Explorer anzeigt. Wird dieser Menueintrag ausgewählt so ruft der Explorer eine Interface Methode aus deiner Implementation auf. Dabei übergibt er eine Liste aller selektierten Objecte = Ordner/Dateien/ShellObjecte wie Papierkorb usw, usw. Du kannst dann direkt aus dieser Liste jede Datei extrahieren.

Gruß Hagen

negaH 22. Aug 2003 15:04

Re: Problem mit Dateiaufruf per paramstr
 
Um es nochmals zusammenzufassen.
Es gibt 3 Wege wie man unter Windows eine Anwendung programieren muß damit sie aus der Shell auf multiple Dateien reagieren kann.

1.) Interprozesskommunikation: dabei überträgt eine eventuelle 2. Instance der eigenen Anwendung seinen ParamStr an die schon 1. laufende Instance der selben Anwendung. Danch terminiert die 2. Instance.

2.) Die Anwendung richtet einen DDE Server ein, registriert diesen bei der Shell über die Registry und empfängt dann nacheinander von der Shell die ausgewählten Dateien und Ordner

3.) Es wird eine DLL benutzt die sich als Shell Extension über die Registry veröffentlicht. Dieser Weg geht über COM Interfaces. Die ShellExt implementiert einen IContextMenu Handler der dann bei registrierten Dateitypen als neuer Menueintrag im PopupMenu des Explorers sichtbar wird.

Gruß Hagen

wb32 22. Aug 2003 15:12

Re: Problem mit Dateiaufruf per paramstr
 
so ist verstänldicher :)

ich weiß es ist nicht leicht jemandem was zu erklären weil man immer davon ausgeht das derjenige den selben wissensstand hat ...

hat er aber meist nich sonst müsste man es ihm ja nich sagen *gg*...


ok variante 3 wird gewünscht :) aber wie funktioniert das mit der dll ?

negaH 22. Aug 2003 21:33

Re: Problem mit Dateiaufruf per paramstr
 
Demo Sources das ShellExt Demo. Alles wird darin aufgezeigt.
Den 3. Weg habe ich absichtlich die ganze Zeit ausgeklammert da er die meisten Vorrausetzung bei dir abverlangt. Ich kann dir nichts über COM Interfaces als Shell Extensionen erkären wenn bei dir die COM Grundlagen nicht vorhanden sind. D.h. ohne diese Grundlagen ist es schwer dir zu erklären wie man eine ShellExt richtig zu coden hat. Deswegen war ich der Meinung das die der 1. oder 2. Weg mehr liegt.
Vielleicht ist ja einer der Experten hier besser in der Lage das zu erkären als ich es bin.

Gruß Hagen

Papulizer 23. Sep 2003 22:22

Re: Problem mit Dateiaufruf per paramstr
 
zu einem Codeteil von SingleInstance (Methode mit Interprozesskommunikation vom Anfang des Threads):

// falls auch bei der 1. Instance OnStartup aufgerufen werden soll
CmdLine := System.CmdLine;
OnStartup;

Problem:
wenn das erste mal (1. Instanz) OnStartup aufgerufen wird, ist
Application.Initialize und Application.CreateForm noch nicht aufgerufen...
Gibt s da eine Lösung? Ist ja nicht gut, CreateForm von Hand aufzurufen. Was aber, wenn OnStartup die Form verwenden soll??


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:13 Uhr.
Seite 2 von 2     12   

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