AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Kontextmenü aller Dateitypen erweitern
Thema durchsuchen
Ansicht
Themen-Optionen

Kontextmenü aller Dateitypen erweitern

Ein Thema von OrallY · begonnen am 30. Apr 2003 · letzter Beitrag vom 2. Mai 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von OrallY
OrallY

Registriert seit: 29. Apr 2003
268 Beiträge
 
#1

Kontextmenü aller Dateitypen erweitern

  Alt 30. Apr 2003, 19:22
Wie kann ich das Kontextmenü bei Klick auf eine Datei, unabhängig vom Dateityp, erweitern? So, wie es WinZIP macht oder viele Virenscanner?
Ich meine also nicht einen Kontextmenüeintrag für einen bestimmten Dateityp, der sich über die Registry verwirklichen lässt.
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 30. Apr 2003, 23:48
Moin Orally,

dafür wirst Du Dir wohl einen ContextMenuHandler erstellen müssen.
Ich bin mir jetzt allerdings nicht sicher, ob es dazu schon Beispiele hier im Forum gibt.

Im PSKD ist es auf jeden Fall unter "Creating Context Menu Handlers" beschrieben.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Tom

Registriert seit: 7. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#3
  Alt 1. Mai 2003, 08:15
Oder unter HKEY_CLASSES_ROOT\*\Shell das gewünschte eintragen. Z.B. ...Shell\Open\Command. Der Eintrag gilt für alle Dateien, aber nicht für Ordner.
  Mit Zitat antworten Zitat
Benutzerbild von OrallY
OrallY

Registriert seit: 29. Apr 2003
268 Beiträge
 
#4
  Alt 1. Mai 2003, 10:51
Der Eintrag bei '*' gilt allerdings auch nur für Dateitypen, die noch keinen anderen Openshell in der Registry haben.
Ich werde mir mal den Artikel im PSDK angucken, das scheint das zu sein, was ich suche. Ich bin gespannt .
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
  Mit Zitat antworten Zitat
Benutzerbild von OrallY
OrallY

Registriert seit: 29. Apr 2003
268 Beiträge
 
#5
  Alt 1. Mai 2003, 10:57
Ich finde bei msdn.microsoft.com den Artikel "Creating Context Menu Handlers" nicht.

Vergesst es *g*! Bin noch nicht ganz ausgeschlafen .
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
  Mit Zitat antworten Zitat
Tom

Registriert seit: 7. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#6
  Alt 1. Mai 2003, 11:33
Zitat von OrallY:
Der Eintrag bei '*' gilt allerdings auch nur für Dateitypen, die noch keinen anderen Openshell in der Registry haben.
RegEdit gestartet, kurz gebastelt: Funktioniert unter W2k einwandfrei. Es werden sowohl die * als auch die .XXX-Einträge ausgewertet.
  Mit Zitat antworten Zitat
Benutzerbild von OrallY
OrallY

Registriert seit: 29. Apr 2003
268 Beiträge
 
#7
  Alt 1. Mai 2003, 14:33
@Tom Wie ich schon sagte, bei mir erschien es nur bei Datei die nicht schon einen Shellopencommand hatten.

Ok, ich hab mir jetzt mal den Artikel im PSDK angeguckt, doch richtig schlau werde ich nicht daraus. Könnte mir das vielleicht einer näher, vorallem Quelltextnäher, erklären, plz?
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#8
  Alt 1. Mai 2003, 15:04
Moin Orally,

zumindest bei D5 sind Demo Projekte Datei, unter anderem auch für die Erweiterung des Explorer Kontextmenüs.

Dieses wäre dann zu finden im Delphi Verzeichnis unter

Demos\Activex\Shellext\contmenu.dpr

schau Dir das doch mal an.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von OrallY
OrallY

Registriert seit: 29. Apr 2003
268 Beiträge
 
#9
  Alt 2. Mai 2003, 14:06
Jo, danke! Habe ich mittlerweile schon gefunden. Doch habe ich ein neues Problem. Ich versuche gerade einen Icon im Menü zu platzieren. Ich hab es mal mit folgendem Code probiert:
Delphi-Quellcode:

{$R Icons.res}
{inhalt: 10 ICON myicon.ico}
function TContextMenu.QueryContextMenu(Menu: HMENU; indexMenu, idCmdFirst,
          idCmdLast, uFlags: UINT): HResult;
var
  Mii: TMenuItemInfo;
begin
  Result := 0; // or use MakeResult(SEVERITY_SUCCESS, FACILITY_NULL, 0);

  if ((uFlags and $0000000F) = CMF_NORMAL) or
     ((uFlags and CMF_EXPLORE) <> 0) then begin
    // Add one menu item to context menu
    InsertMenu(Menu, indexMenu, MF_STRING or MF_BYPOSITION, idCmdFirst,
      'Blablub...');
    mii.cbSize := SizeOf(TMenuItemInfo);
    mii.fMask := MIIM_CHECKMARKS;
    mii.hbmpChecked := LoadIcon(hInstance, PChar('10'));
    mii.hbmpUnchecked := LoadIcon(hInstance, PChar('10'));
    SetMenuItemInfo(Menu, indexMenu, true, mii);
    SetMenuItemBitmaps(Menu, indexMenu, MF_BYPOSITION, mii.hbmpChecked, mii.hbmpUnchecked);
    // Return number of menu items added
    Result := 1; // or use MakeResult(SEVERITY_SUCCESS, FACILITY_NULL, 1)
  end;
end;
Was mache ich falsch?
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#10
  Alt 2. Mai 2003, 14:28
Moin Orally,

so aus dem Stand, ohne den Code näher zu analysieren:

Du musst auf jeden Fall

Delphi-Quellcode:
  LoadIcon(hInstance,PChar(10));
  // oder
  LoadIcon(hInstance,MAKEINTRESOURCE(10));
nehmen, da Du ja das Icon ja mit einer Integer ID und nicht mit einem Namen versehen hast.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:01 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