Kontextmenü des Windows-Explorers erweitern



  • Hallo,

    ich muss mein Programm in das Windows-Explorer Kontextmenü und in die Systemsteuerung einbinden. Leider habe ich nur Tutorials gefunden die nicht funktionieren. Was genau muss ich denn dafür tun? Da es sich um eine Dateibezogene Behandlung handelt, muss ich auch die Namen der selektierten Dateien überprüfen. Das hier hat bei mir leider nicht funktioniert. Und in der MSDN find ich mal wieder keine Info (die es aber mit Sicherheit gibt). Weiß jemand auf die Schnelle wie man das macht?



  • Menu Functionen:
    schau dir mal CreateMenu und SetMenu an

    http://msdn.microsoft.com/en-us/library/ms674866%28VS.85%29.aspx



  • punky schrieb:

    Menu Functionen:
    schau dir mal CreateMenu und SetMenu an

    http://msdn.microsoft.com/en-us/library/ms674866%28VS.85%29.aspx

    Also ich möchte das Windows-Explorer Kontextmenü erweitern; kein Popup-Menü von mir selbst.

    Das geht z.B: über die Registry:
    HKEY_CLASSES_ROOT\Folder\shell\"Name des Eintrags"\command
    Dort als Standardwert "Pfad zum Program" "%1"

    Da liegt das Problem nicht, aber ich brauche die Pfade aller selektierter Dateien. Das kann ich mich über diese "Dumme" Lösung die einfach nur ein Programm beim auswählen des Eintrags aufruft sehr schwierig vor.
    Das müsste, wenn überhaupt, als Parameter an das Programm übergeben werden. Zudem brauche ich dass nicht nur für Dateien ODER Ordner, sondern beides ...



  • Also ich möchte das Windows-Explorer Kontextmenü erweitern; kein Popup-Menü von mir selbst.

    Das geht z.B: über die Registry:

    Das geht auch über die WIN api...



  • da schau ein kleines beispiel, macht 2 neue einträge beim existierenden contexmenu der console:

    //THIS SAMPLE ADDS 2 entries to the existing contexmenu of your console, to parse //use WM_CONTEXMENU
    
            HWND CW=GetConsoleWindow();
            HMENU hSysMenu = GetSystemMenu(CW, FALSE);
            // This is how to add a separator to a menu
            InsertMenu(hSysMenu, 2, MF_SEPARATOR, 0, TEXT("-"));
            // This is how to add a menu item using a string
            AppendMenu(hSysMenu, MF_STRING, 1, TEXT("Practical Techniques"));
            // This is how to add a menu item using a defined identifier
            AppendMenu(hSysMenu, MF_STRING,  40006 ,TEXT( "About..."));
    

    im grunde kann man alles machen, mit jeder windowsform die bereits existiert.


  • Mod

    punky schrieb:

    da schau ein kleines beispiel, macht 2 neue einträge beim existierenden contexmenu der console:
    im grunde kann man alles machen, mit jeder windowsform die bereits existiert.

    Nein! Du veränderst hier das System-Menü Ganz gewiss nicht das Kontext-Menü, dass über die rechte Maustaste geöffnet wird oder eben über die Kontextmenütaste rechts neben Alt+Gr.


Anmelden zum Antworten