Kann "C: \ Windows \ System32 \ shdocvw.dll" nicht zu meinem Projekt hinzufügen

8

Ich benutze VS 2010 Ultimate.

Ich versuche, "shdocvw.dll" zu den Referenzen meines Projekts hinzuzufügen, indem ich mit der rechten Maustaste auf Referenzen - & gt; Fügen Sie Referenz ... hinzu, klicken Sie dann auf Durchsuchen und navigieren Sie zu "C: \ Windows \ System32 \ shdocvw.dll", aber wenn ich auf Hinzufügen klicke nichts passiert überhaupt. Der Dialog wird nicht geschlossen.

Irgendeine Idee was könnte ich falsch machen?

Ich habe versucht, VS neu zu starten, hatte aber dieses Problem weiterhin.

    
Juan 30.06.2011, 04:55
quelle

3 Antworten

17

Wenn Sie in Ihrer C # -Lösung einen Verweis auf die COM-Komponente namens "Microsoft Internet Controls" hinzufügen, sollten Sie von einer C # -Konsolen-App aus auf den SHDocVw-Namespace zugreifen können, ohne etwas Ungewöhnliches tun zu müssen.

Sobald ich das getan habe (in VS 2008), war ich dann in der Lage, SHDocVw.ShellWindows, SHDocVw.IWebBrowser2 und so weiter zu verwenden. Zum Beispiel:

%Vor%

BEARBEITEN: Wenn Sie VS 2012 / .NET 4.x verwenden, können Sie stattdessen den folgenden Ansatz verwenden, um den Fehler zu umgehen "Interop-Typ 'SHDocVw.ShellWindowsClass' kann nicht eingebettet werden."

%Vor%

Weitere Informationen zum Thema VS 2012 finden Sie in dieser Antwort:

C # Wie bekomme ich die aktuelle URL vom IE? ?

    
Bill Agee 16.12.2011, 23:51
quelle
2

Das Problem ist, dass shdocvw.dll keine .NET-Assembly ist, sondern sowohl eine normale Win32-DLL als auch ein ActiveX-Steuerelement, aber keine Assembly. Die einzigen Dinge, die Sie als Referenzen auf ein C # -Projekt hinzufügen können, sind .NET-Assemblies.

OK, das wirft die Frage auf, warum Sie einen Verweis auf shdocvw.dll zu einem C # -Projekt hinzufügen möchten. Wahrscheinlich, weil Sie die ActiveX-Schnittstelle zu Internet Explorer verwenden möchten, um einen Webbrowser in Ihre Anwendung einzubinden.

Wenn Sie also eine Windows Forms-Anwendung schreiben, sollten Sie das WinForms-Steuerelement WebBrowser verwenden. Wenn Sie eine WPF-Anwendung schreiben, sollten Sie das Steuerelement WPF WebBrowser verwenden. Hier sind Anweisungen für Windows Forms:

Wenn Sie jedoch aus irgendeinem Grund das Steuerelement selbst einbeziehen möchten, müssen Sie es, wie in der folgenden Beschreibung beschrieben, zur Visual Studio Toolbox hinzufügen:

Rick Sladkey 30.06.2011 06:35
quelle
1

Es ist eine leider häufige Anfrage, die ich schon einmal gesehen habe.

Sie können es nicht als Referenz hinzufügen. Sie müssen es als Toolbox-Element hinzufügen, in ein Formular einfügen und dann Bobs Onkel ...

Es ist eine Besonderheit!

Vollständige Anweisungen hier: Ссылка

    
Darbio 30.06.2011 06:26
quelle