Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Kontexmenü Problem (https://www.delphipraxis.net/30010-kontexmenue-problem.html)

DelphiFreund 18. Sep 2004 11:21


Kontexmenü Problem
 
Hi Leute,
ich weiss das es diese Themen schon zur genüge gibt, aber in keinem wurde bis jetzt auf Folgendes Problem eingegangen:

Viele Leute kennen ja WinRar oder irgendeinen Shredder.

Bei WinRar kommt bei einem Rechtsklick auf einen Ordner das Kontexmenü, indem steht z.B. "Zu einem Archiv hinzufügen" auf höchster Ebene des Kontexmenüs (nicht bei "Neu", oder "Öffnen mit ...");

Und genau da brauch ich meinen Eintrag, er muss bei jedem Dateityp da sein, und bei Ordnern,

wie und wo muss ich den machen?


Ich Danke im Vorraus für jede Antwort,

Gruß DelphiFreund

Meflin 18. Sep 2004 11:23

Re: Kontexmenü Problem
 
stichwort dateiendung registrieren. in der codelib und im forum wirst du mehr als fündig!

himitsu 18. Sep 2004 11:31

Re: Kontexmenü Problem
 
schau mal in die Registry > HKEY_CLASSES_ROOT - dort wirst du fündig

an alles kommst du über "*"

für das weitere gibt es mehrere Wege.
einer wäre (der sollte aber auch schin hier im Forum erwähnt sein!):
Code:
HKEY_CLASSES_ROOT
> *
  > shell
    > machwas (irgendein kurzes wort)
      (Standard) = "Name, welche im Popupmenü angezeigt wird"
      > command
        (Standard) = "J:\Programme\xxx\yyy.exe %1" (dein Programm)
Code:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell]

[HKEY_CLASSES_ROOT\*\shell\machwas]
@="Name, welche im Popupmenü angezeigt wird"

[HKEY_CLASSES_ROOT\*\shell\machwas\command]
@="J:\\Programme\\xxx\\yyy.exe %1"

scp 18. Sep 2004 11:37

Re: Kontexmenü Problem
 
Wenn du mehr Kontrolle über die Positionierung usw. haben willst musst du dich allerdings mit Hier im Forum suchenIContextMenu rumschlagen.

DelphiFreund 18. Sep 2004 12:12

Re: Kontexmenü Problem
 
@himitsu:
Muss zwischen [HKEY_CLASSES_ROOT\*\shell und \machwas nicht noch ContextMenuHandles oder so?

Sprint 18. Sep 2004 12:28

Re: Kontexmenü Problem
 
@DelphiFreund:

:arrow: Schau dir mal die Beispiele an, die du unter <DelphiInstallPath>\Demos\ActiveX\ShellExt findest.

DelphiFreund 18. Sep 2004 13:43

Re: Kontexmenü Problem
 
Danke :-D , mal sehen ob ich damit weiterkomme.

Gruß DelphiFreund

himitsu 18. Sep 2004 13:53

Re: Kontexmenü Problem
 
"ContextMenuHandles"?

Also bei Schell ist das nicht nötig ... es furnktionier schon so, wie es ist ganz gut.

Es könnte sein, dass es bei ShellEx benötigt wird ???

DelphiFreund 18. Sep 2004 14:00

Re: Kontexmenü Problem
 
@himitsu: Jetzt wo du es sagst, bei mir gibt es nur Shellex kein Shell unter HKEY_CLASSES_ROOT\*\

Aus irgendeinem Grund hat es nicht funktioniert, ich wollte eh gerade Fragen wieso, weiß hier jemand was ich bei shellex beachten muss?

bigg 18. Sep 2004 14:17

Re: Kontexmenü Problem
 
hi,

nutze in jedem Fall die von Sprint angesprochene Variante.
Ich habe mir ebenfalls schon vor etwas länger Zeit eine ShellExtension programmiert.
Du erstellst eine DLL und bindest diese in die Explorer.exe über die Registry ein.
Der Registry-Pfad ist "HKEY_CLASSES_ROOT\*\shellex". Da wirst du auch
wohlmöglich die TGUID von WinRar wiederfinden.
(TGUID ist ein Hexadezimalwert, such einfach mal nach dieser ID)


Um mit der DLL und deinem Programm Daten auszutauschen, wirst du wohl um WM_CopyData
nicht herum kommen. Damit wirst du dann die Pfade an dein Programm schicken.

Der Vorteil einer ShellExtension ist:
- Funktion auf allen Windows-Versionen
- ParamStr(i) übergibt nur eine begrenzte Anzahl von Parametern, somit ist es nicht möglich
mal eben 100 Dateipfade mit einem Mal zu übergeben, bei einer ShellExtension schon
- mehrere gewählte Dateien werden so wesentlich schneller geöffnet bzw. das
Hauptprogramm wird nicht immer wieder geöffnet
- man kann Dateien, Ordner oder Laufwerke filtern usw.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 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