2009-05-10 11 views
1

Ich arbeite an einer Shell-Erweiterung, die erweiterte Eigenschaften von Dateien (meist .jpgs) auf einem virtuellen Laufwerk (denken Sie an es als eine externe Festplatte) anzeigen soll.Restricted Windows Shell-Erweiterung zu Ordner/Laufwerk

Ist es möglich, die Shell-Erweiterung auf eine Weise zu registrieren, die nur für Dateien eines bestimmten Ordners/Laufwerks (in meinem Fall die externe Festplatte) startet und die Verarbeitung von JPGs in anderen Ordner an die Windows-Standard-Shell Erweiterung?

Grüße,

Sebastian

Antwort

0

Soweit ich die Shell-Erweiterung Registrierung in der Registrierung verstanden haben, gibt es nicht so etwas wie „es in einen bestimmten Ordner beschränken“. Ihre Erweiterung müsste global registriert und so implementiert werden, dass keine zusätzlichen Kontextmenüelemente angezeigt werden, wenn sie nicht geeignet sind.

In der Registrierung sind Shell-Erweiterungen an Dateitypen im CLASSES_ROOT-Schlüssel gebunden. Der gesamte Prozess ist faktenzentriert. Die Auflösung des Dateityps ist also die beste, die Sie bekommen können. Wenn man es betrachtet, wäre alles andere (wie Pfad/Laufwerk/Laufwerkstyp einer gegebenen Datei) zu volatil, um eine Erweiterungsregistrierung darauf sinnvoll zu machen.

1

Dieser Artikel listet Möglichkeiten auf, wie Sie Ihre Shell-Erweiterung registrieren können: http://msdn.microsoft.com/en-us/library/cc144096(VS.85).aspx.

Sie sollten in der Lage sein, einen Systemordner auf Ihrer externen Festplatte zu erstellen, der eine Datei desktop.ini enthält, die auf Ihre Erweiterung verweist.

Alternativ können Sie innerhalb der Erweiterung selbst den Pfad überprüfen und die zusätzliche Logik nicht ausführen, wenn sie sich nicht an der gewünschten Stelle befindet.