Autor Beitrag
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: Mo 29.05.06 14:11 
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?

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
digi_c
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1905

W98, XP
D7 PE, Lazarus, WinAVR
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: 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?
Einloggen, um Attachments anzusehen!
_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
Timosch Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: 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? :-)

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
digi_c
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1905

W98, XP
D7 PE, Lazarus, WinAVR
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: Di 30.05.06 09:44 
Danke, ich glaub das hilft mir weiter.

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
digi_c
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1905

W98, XP
D7 PE, Lazarus, WinAVR
BeitragVerfasst: Mi 31.05.06 13:09 
In der aktuellen c't S234 ist ein sehr schöner Artikel zum Thema Shell Extension Handlers programmieren drin(wenn auch in C)!