AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kontexmenü Problem

Ein Thema von DelphiFreund · begonnen am 18. Sep 2004 · letzter Beitrag vom 18. Sep 2004
Antwort Antwort
Seite 2 von 2     12   
DelphiFreund

Registriert seit: 29. Jul 2004
Ort: München
127 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Kontexmenü Problem

  Alt 18. Sep 2004, 14:30
Die Methode klingt wirklich gut, aber ich hätte dazu noch Fragen:

Wie übergibt Explorer.exe die Dateinamen an die dll?
Und wie bekomme ich die Dateipfade aus der dll in mein Programm, wenn ich das Programm durch die dll aufgerufen habe?

Gruß DelphiFreund
Sandro
Irren ist menschlich...
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#12

Re: Kontexmenü Problem

  Alt 18. Sep 2004, 14:50
hi,

Zitat:
Wie übergibt Explorer.exe die Dateinamen an die dll?
Dies geschieht über DragQueryFile(). Aber du mußt dir das so vorstellen, das deine DLL
ein Unterprogramm von "Explorer.exe" ist. Die DLL laüft immer, wenn auch Explorer.exe läuft.
Schau dir dazu das von Sprint angesprochene Beispiel an.
(Delphi\Demos\ActiveX\ShellExt\contmenu.dpr)

Zitat:
Und wie bekomme ich die Dateipfade aus der dll in mein Programm, wenn ich das Programm durch die dll aufgerufen habe?
-> Die DLL wird ja vom Explorer aufgerufen
-> der Explorer übergibt die Pfade an die DLL, sobald du die rechte Maustaste gedrückt hast
-> Deine DLL kann dann eine Dateiliste erstellen
-> Jetzt gibt es mehrere Möglichkeiten die Liste an dein Programm zu übergeben
-> 1.) Du übergibst die Speicher-Adresse der Liste und sendest sie an dein Programm
2.) oder du sendest die Liste über WM_CopyData an dein Programm (Messages, SendMessage)

PS: Die DLL startet dann dein Programm und übergibt dann die Liste.
Das Starten des Hauptprogrammes kostet Zeit, daher mußt du solange prüfen bis es gestartet ist.
Den Pfad zur Exe kann man in der Registry abspeichern.
  Mit Zitat antworten Zitat
DelphiFreund

Registriert seit: 29. Jul 2004
Ort: München
127 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Kontexmenü Problem

  Alt 18. Sep 2004, 15:26
Danke, das übersteigt eigentlich mein Wissen, aber ich werd das auch noch lernen, aber noch eine Frage, muss man den Computer nicht neustarten, bevor Explorer.exe die dll nutzt?

Gruß DelphiFreund

P.S.: Oder zumindest Explorer.exe?
Sandro
Irren ist menschlich...
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#14

Re: Kontexmenü Problem

  Alt 18. Sep 2004, 15:38
hi,

nein nicht unbedingt:
1.) Man kann den Explorer beenden und wieder starten.
2.) Man könnte sich wieder ein- und ausloggen.
3.) regsvr32.exe benutzen
  Mit Zitat antworten Zitat
DelphiFreund

Registriert seit: 29. Jul 2004
Ort: München
127 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Kontexmenü Problem

  Alt 18. Sep 2004, 15:52
@bigg: Wirklich vielen Dank für deine Hilfe, ohne dich würde ich das nie schaffen

Aber was hat es mit der GUID in Contmenu.dpr auf sich? Muss das die GUID meines Programms sein?
Und wo muss mein Programm in der Registry stehen, damit das mit der dll funktioniert ?

Und was macht regsvr32,exe genau?


Gruß DelphiFreund
Sandro
Irren ist menschlich...
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#16

Re: Kontexmenü Problem

  Alt 18. Sep 2004, 18:37
hi,

das was du alles angesprochen hast, hat mehr was mit installieren der DLL
in den Explorer selbst zu tun.

Es gibt 2 Wege dies zu tun: Einmal über regsvr32.exe mit Parametern oder manuell
über die Registry. Die GUID ist eine eindeutige und einzigartige Nummer. Du verwendest
sie nur, wenn du die Registry Variante verwenden möchtest. Dann werden mehrere Schlüssel
mit diesem Wert angelegt, noch ein zwei Werte der DLL und schon ist sie registriert.

Starte einfach mal regsvr32.exe, wie du siehst werden dir einige nützliche Parameter angezeigt, um eine DLL
zu installieren bzw. zu deinstallieren. Verwendet man diese Variante erfolgt die Registierung in der Registry automatisch. Man braucht dann keine GUID.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 03:10 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