AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Problem mit Dateiaufruf per paramstr
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Dateiaufruf per paramstr

Ein Thema von wb32 · begonnen am 7. Aug 2003 · letzter Beitrag vom 23. Sep 2003
Antwort Antwort
Seite 5 von 5   « Erste     345   
Daniel B
(Gast)

n/a Beiträge
 
#41

Re: Problem mit Dateiaufruf per paramstr

  Alt 22. Aug 2003, 15:19
Warum macht Ihr denn nicht endlich ein neuen Thread auf? Das hier hat doch vornt und hinten nichts mehr mit dem Ursprungsthema zutun. Danke!
  Mit Zitat antworten Zitat
wb32

Registriert seit: 4. Jul 2003
143 Beiträge
 
#42

Re: Problem mit Dateiaufruf per paramstr

  Alt 22. Aug 2003, 15:31
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 ...
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#43

Re: Problem mit Dateiaufruf per paramstr

  Alt 22. Aug 2003, 15:54
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
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#44

Re: Problem mit Dateiaufruf per paramstr

  Alt 22. Aug 2003, 16:04
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
  Mit Zitat antworten Zitat
wb32

Registriert seit: 4. Jul 2003
143 Beiträge
 
#45

Re: Problem mit Dateiaufruf per paramstr

  Alt 22. Aug 2003, 16:12
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 ?
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#46

Re: Problem mit Dateiaufruf per paramstr

  Alt 22. Aug 2003, 22:33
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
  Mit Zitat antworten Zitat
Papulizer

Registriert seit: 23. Sep 2003
2 Beiträge
 
#47

Re: Problem mit Dateiaufruf per paramstr

  Alt 23. Sep 2003, 23:22
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??
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


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 12:41 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