2010-01-19 4 views
5

Ich bin im Begriff, meine Haare aus Mangel an einer konsequenten, idiotensicheren Weg, um die Kontextmenü-Elemente, die Explorer zeigt, wenn ich mit der rechten Maustaste auf ein Element. Ich möchte kein Menü anzeigen, ich möchte nur die Elemente im Hintergrund parsen und sie programmatisch ausführen.Windows Explorer Kontextmenüeinträge programmatisch ausführen

Ich habe verschiedene Kombinationen von IShellFolder, IContextMenu und anderen COM-Schnittstellen ausprobiert und ich kann nichts finden, was konsistent funktioniert.

Ich weiß, dies ist eine vage Frage, aber wenn jemand überhaupt Erfahrung in der Arena der programmatischen Ausführung von Windows Explorer-Kontextmenü-Elementen hat, würde jede Hilfe geschätzt werden.

+0

P.S. Meine Haare werden dir dankbar sein :). – jgraves

+0

Dies ist einer dieser Bereiche, in denen "in die Registry schauen" eine akzeptable Lösung sein kann (die Registrierungsschlüssel sind Teil der dokumentierten Schnittstelle, also ist es nicht so ungezogen wie es klingt). Hast du das probiert? Hat es nur zu weiterem Haarausfall geführt? – itowlson

+0

Lassen Sie mich mehr Informationen über die Frage erhalten, Sie haben eine .net-Anwendung, die für einen bestimmten Dateityp funktioniert und einen Windows Explorer-Kontextmenübefehl, der Ihre Anwendung ausführen und den Dateipfad (4 Beispiel) übergeben kann, Ist das deine Absicht? –

Antwort

2

Der Meister der Schale, Raymond Chen, machte eine ganze Reihe von posts über IContextMenu auf seinem ausgezeichneten Blog.

Es gibt auch eine kleine Freeware App Runmenu genannt, die Elemente aus dem Shell-Kontextmenü ausgeführt wird direkt (Die Website scheint down zu sein, ich bin sicher, dass Sie die EXE-Datei irgendwo im Netz finden)

+0

Ich habe die Beiträge von Raymond Chen schon einmal durchgesehen und sie sind ziemlich hilfreich, aber sie heben immer noch nicht das seltsame Verhalten auf, das ich sehe. Diese Runmenu App sieht gut aus. Ich werde versuchen, dem Autor eine E-Mail zu schicken, um zu sehen, ob ich ein bisschen Hilfe bekommen kann. Der Teil meiner Situation, der das noch schwieriger macht, ist, dass ich versuche, dies von C# zu tun. – jgraves

5

Ich brauchte eine Stunde, um RunMenu zu finden, also werde ich Zeit sparen für alle anderen, die versuchen, es zu finden. Hier ist der Link, den ich gefunden, Version 2.2:

http://www.programbits.co.uk/downloads/runmenu.zip

Hoffe, es hilft.

+2

'Hoffe es hilft' Nicht wirklich, es ist nur die binäre, keine Quelle. – Synetech

3

I benötigt dies kürzlich gefunden und den Quellcode des Werkzeugs Context.exe http://www.maddogsw.com/cmdutils/

Beispiel Ausgang:

PS D:\Downloads\cmdutils> .\Context.exe /text .\ReadMe.txt 
1: Open 
2: Print 
3: Edit 
4: Add to Multi-Rename List 
5: PowerCmd Here 
6: (bitmap) 
7: 7-Zip    --> 
8: ------------------------ 
9: Sign and encrypt 
10: More GpgEX options --> 
11: ------------------------ 
12: Open with   --> 
13: Search with InfoRapid 
14: ------------------------ 
15: (bitmap)    --> 
16: ------------------------ 
17: (bitmap)    --> 
18: ------------------------ 
19: (bitmap)    --> 
20: ------------------------ 
21: Unlocker 
22: ------------------------ 
23: Restore previous versions 
24: ------------------------ 
25: Send to    --> 
26: ------------------------ 
27: Cut 
28: Copy 
29: ------------------------ 
30: Create shortcut 
31: Delete 
32: ------------------------ 
33: Properties 
Choice? 30 
+0

Funktioniert gut und Quellcode ist enthalten. Vielen Dank! – John