Entwickler-Ecke

Sonstiges (Delphi) - "Suchen"-Menü von Windows erweitern


Timosch - Mo 29.05.06 14:11
Titel: "Suchen"-Menü von Windows erweitern
Wie kann man das Suchen-Menü im Startmenü um eigene Suchfunktionen erweitern, wie es etwa die Encarta oder Outlook macht? Muss man da einfach irgendwo eine Verknüpfung zum Programm ablegen oder ist das etwas komplizierter?


digi_c - Mo 29.05.06 14:16

Was meisnt du denn genau, ich habe kein Encarta und kann das nicht so richtig nachvollziehen. Ein Screenshot wäre nciht schlecht.

Definitiv muss man eine DLL/ActiveX schreiben und diese dann im System registrieren und dann noch irgendwo zusätzlich vermerken.

Ansonsten könnte man noch so einen virtuellen Ordner wie Eigene Dateien machen bzw. Erweiterungen registrieren, die den Inhalt von Dokumenten/Eigenschaften rausholen(macht Adobe für PDF zum Bleistift;) )


Timosch - Mo 29.05.06 14:39

Ich habe auch keine Encarta :-)
Aber einige Programme erweitern das Suchen-Menü. Ich hab mal nen Screenshot angehängt. Die unteren 3 Einträge sind ja nicht von Windows selber.
Habe jetzt herausgefunden, dass das unter HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\FindExtensions\Static
eingetragen wird. Da stehen aber nur GUIDs. Unter HKCR\CLSID steht für die jeweilige GUID dann in einem Unterschlüssel namens InProcServer32 im Standartschlüssel eine DLL. Diese ist dann wohl für die Suchfunktion zuständig. Die Frage ist jetzt nur noch: Welche Funktionen muss diese DLL implementieren?


Timosch - Mo 29.05.06 17:32

Also, ich hab jetzt einfach mal nen Schlüssel unter FindExtensions eingetragen, in den Standardwert eine (in der Delphi-IDE mit Strg-Shift-G erzeugte) GUID eingetragen und unter CLSID einen Schlüssel erstellt, der als Name diese GUID hat. Dieser trägt als Standardschlüssel den Namen einer DLL. Das ist mein Programm, hab einfach im Projektquelltext project in library geändert. Es funktioniert tatsächlich. Das Programm wird gestartet. Das einzige Problem ist: Wenn es beendet wird, stürzt die explorer.exe ab... Was kann man da machen? :-)


digi_c - Di 30.05.06 09:24

Die müssen IMHO schon ne gewisse Struktur haben. Ich denke das geht in die Richtung: Suche im MSDN CREATING SHELL EXTENSION HANDLERS


Timosch - Di 30.05.06 09:44

Danke, ich glaub das hilft mir weiter.


digi_c - Mi 31.05.06 13:09

In der aktuellen c't S234 [http://www.heise.de/ct/06/12/006/] ist ein sehr schöner Artikel zum Thema Shell Extension Handlers programmieren drin(wenn auch in C)!