Frage

Ich bin ein Neuling .Net 2.0 und 3.5 Entwickler. Ich möchte eine Anwendung erstellen, die ein Kontextmenü erzeugt, wenn eine Datei direkt auf in Vista geklickt wird. Nach dem Rechtsklick - ich glaube, ich den Rest herausfinden kann, aber ich weiß nicht, die Technik Zugriff auf das Vista-API zu erhalten.

FOLLOW-UP:

Wie ich habe einige der Informationen zu lesen, dass die Leute mit geantwortet habe, habe ich festgestellt, dass ich viel des Guten hier mit den Shell-Erweiterungen werde. Ich denke, dass ich dieses Projekt halten kann viel einfacher, wenn ich meine app einfach anrufen und den Dateinamen als Parameter übergeben. Dies würde immer noch meine app erfordert im Explorer Kontextmenü zu kommen, wenn Dateien mit bestimmten Erweiterungen werden direkt angeklickt werden. Wie gehe ich um dies zu tun?

War es hilfreich?

Lösung

Mit dem Risiko der Sondierung nicht hilfreich, würde ich dagegen in .Net 2.0 oder 3.5 empfehlen. Wie Brian sagte, die Sache, die Sie implementieren möchten, ist eine Shell-Erweiterung. Diese werden implementiert, wie Bibliotheken, die die Vista Shell geladen wird.

Zwar gibt es mehrere Tutorials rund um das Internet sind, die Anweisungen geben diese in .Net 2.0 oder so wenige von ihnen Umsetzung erwähnen, wie schlechte Idee dieser ist. Wenn Sie die Vista-Shell eine .Net-Shell-Erweiterung machen laden wird gezwungen, das ganze .Net CLR zu laden, die Shell-Erweiterung erfordert. Was macht diese noch schlimmer ist, dass Sie nur eine Version des vollen .Net CLR in einem Prozess geladen werden können. Wenn Sie also eine Shell-Erweiterung, die .Net 1.0 CLR und Vista erfordert hat diese geladen ist, kann es nicht laden Sie die 2.0 CLR Ihre Shell-Erweiterung erfordert.

Auch gibt es einige Stack-Überlauf Artikel dies bereits diskutiert.

Einige Informationen auf eine Shell-Erweiterung in nicht verwalteten C ++ (KBCafe PDF Umsetzung , konnte nicht einen einfachen hTML-Link)

finden

Andere Tipps

Das, was Sie schreiben möchten, ist eine „Shell-Erweiterung“ genannt. Ich habe noch nie geschrieben ein, so kann ich nicht geben Ihnen ein kleines Beispiel, aber jetzt, dass Sie wissen, was es heisst Sie wahrscheinlich mehr Fortschritte bei der Suche nach Tutorials auf Google machen kann.

Ich bin ziemlich sicher, dass Sie nicht verwalteten Code verwenden dürfen, um Shell-Erweiterungen für Explorer in jeder Version von Windows zu schreiben. Also, wenn Sie einen schreiben möchten, müssen Sie es in einer „traditionellen“ Sprache wie C ++ tun.

Sie benötigen ein Kontextmenü Shell Extension , jetzt eine Sache im Auge zu behalten ist, dass Sie nicht erlaubt, sie zu schreiben in .net (Der alte neue Sache Blog).
Sie können versuchen, out-of-Process-Erweiterung zu schreiben (das Skelett nicht verwalteten ist die Managed-Service durch IPC ruft), aber ich habe niemanden gesehen, dass doning.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top