Frage Wie erstellt man Internet Explorer Sidebar Erweiterung in C #?


Ich möchte eine IE-Erweiterung erstellen - a Seitenleiste ("Explorer-Leiste") sieht im IE9 genauso aus wie Lesezeichen / Favoriten-Seitenleiste, es soll HTML-Webseite darin zeigen.

Ich habe ein paar Stunden lang gegoogelt und gelesen:

und

aber ich brauche eine Sidebar - keine Fenster oder Nachrichtenboxen. Ich würde gerne eine einfache, grundlegende Lösung sehen - ich werde später die Details machen.

Ich habe eine Erweiterung für FF und Chrome erstellt - ihre Extension Dev Center sind viel besser als die von Microsoft.

Bitte sag mir, was ich in einfachen Schritten tun soll. Ich möchte die IE-Erweiterung in Visual Studio 2010 und C # erstellen. Ich werde es auf keinen Fall in C ++ erstellen.

BEARBEITEN (2011-10-20):

Ich habe es geschafft, die Lösung in Wie beginne ich mit der Entwicklung von Internet Explorer-Erweiterungen? aber:

  1. es funktioniert nicht richtig: das gesetzte Wort wird überhaupt nicht hervorgehoben,
  2. Ich denke, dass das Problem ist, dass ich IE9 nicht 8 verwende,
  3. Die Lösung sagt mir nicht, wie man ein Seitenleiste für IE9.

Übrigens. Ich verwende Visual Studio 2010 Express (Visual C # 2010 Express) - nicht Professional oder Ultimate. Ich denke, es gibt keine Option zum Starten eines externen Programms auf der Registerkarte "Debuggen" des Projekts.

Bitte helfen.


7
2017-10-19 12:56


Ursprung


Antworten:


Ich habe ein perfektes Arbeitsbeispiel gefunden: http://code.msdn.microsoft.com/CSIEExplorerBar-ba8fe182/view/Reviews

Es ist sehr interessant, dass ich es bei Google nicht finden konnte ...

Nach dem Download einfach die Datei entpacken und CSIEExplorerBar.sln öffnen. Einige Projekte der Lösung können nicht in VS 2010 importiert werden - es sind nur Installationsprojekte, Sie benötigen sie nicht, um das BHO auszuführen.

Gehe zu den Eigenschaften des Projekts und in der Registerkarte "Build Events" lege diesen Text in die "Post-build event command line" (wörtlich):

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe" /f /i "$(TargetDir)$(TargetFileName)"

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" /unregister "$(TargetDir)$(TargetFileName)"

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" "$(TargetDir)$(TargetFileName)"

Erstellen Sie das Projekt - Sie erhalten Fehler, weil, wie Sie sehen können, der zweite Befehl versucht, die Registrierung des BHO aufzuheben, aber noch nichts registriert ist. Sie können den Build erneut ausführen, und Sie erhalten keine Fehler.

Öffne den IE. Öffnen Sie das Menü Ansicht, Explorer Bars und klicken Sie auf "Image List Explorer Bar" - Sie sollten die Explorer-Leiste sehen, die Sie gerade erstellt haben!

Damit Ihr BHO die HTML-Seite anzeigt, müssen Sie nur das Benutzersteuerelement ändern. Fügen Sie das WebBrowser-Steuerelement hinzu und fügen Sie die URL der Seite hinzu, die dem Steuerelement angezeigt werden soll.

Einzelheiten

Ich habe Erweiterungen für Chrome und Firefox erstellt. IE-Erweiterungen sind die der schlechtesten Architektur. Die Dokumentation ist schrecklich - sie ist veraltet und meistens nur für C ++. Erweiterungen für Chrome und Firefox sind HTML / XUL und JavaScript-basiert - fast jeder Webentwickler kann innerhalb von Minuten seine / ihre eigene Erweiterung erstellen! Ich denke, es ist viel schwieriger in IE - Sie müssen buchstäblich das Internet erkunden, um Informationen zu finden, die nützlich für diese Technologie sind.

Wie Sie hier lesen können - http://msdn.microsoft.com/en-us/library/bb776819.aspx - Sie müssen mit magischen Ding namens Registry spielen. Es ist wirklich das Schlimmste, was sie tun können, um Daten über Erweiterungen zu speichern. Ich weiß immer noch nicht, wo ich die Informationen über den Autor oder die Version des BHO hinzufügen soll. Wenn Sie dies tun, antworten Sie bitte: https://stackoverflow.com/questions/7926800/how-to-add-author-name-version-number-description-etc-to-browser-helper-objec

Das BHO funktioniert nicht, wenn es nicht mit einem Schlüssel - IEExplorerBar.snk in dieser Lösung signiert ist. Sie können einen Schlüssel in einem neuen Projekt sehr einfach hinzufügen - öffnen Sie einfach die Projekteigenschaften, Registerkarte "Signieren" - "Unterschreiben Sie die Baugruppe" und fügen Sie den neuen Schlüssel hinzu.

Die Dokumentation ist sehr sehr alt und niemand macht etwas dagegen!

IMHO Microsoft sollte neu entwerfen und IE wieder schreiben - es ist Architektur ist veraltet, anachronic. 

Einige Links

Hinzufügen von Symbolleistenschaltflächen zum Öffnen der Explorerleiste: http://msdn.microsoft.com/en-us/library/aa753588%28v=VS.85%29.aspx#details_explorer

Einige Informationen zur Registrierung in x64-Systemen: http://msdn.microsoft.com/en-gb/library/aa384232%28VS.85%29.aspx

Über den Interlop-Namespace (SHDocVw): http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.ole.interop.aspx


2
2017-11-14 09:46