Wie erstelle ich ein ActiveX-Steuerelement (COM) in C #?

47

Ich versuche ein ActiveX-Steuerelement zu erstellen. Ich verwende Visual Studio 2010 (.NET 4). Ich muss ein COM -Objekt erstellen (in C #) und habe keine Ahnung, wie ich anfangen soll (welche Art von Projekt zu verwenden ist) usw.).

    
Eyal 29.07.2010, 07:04
quelle

3 Antworten

70

OK, ich habe die Lösung gefunden und schreibe sie hier für das Gemeinwohl.

  1. Starten Sie VS2010 als Administrator.
  2. Öffnen Sie ein Klassenbibliotheksprojekt (Beispiel - MyProject).
  3. Fügen Sie dem Projekt eine neue Schnittstelle hinzu (siehe Beispiel unten).
  4. Fügen Sie der Datei ein using System.Runtime.InteropServices; hinzu
  5. Fügen Sie der Schnittstelle die Attribute InterfaceType, Guid hinzu.
  6. Sie können Guid mit Hilfe von Tools- & gt; GUID generieren (Option 4) generieren.
  7. Fügen Sie eine Klasse hinzu, die die Schnittstelle implementiert.
  8. Fügen Sie der Schnittstelle die Attribute ClassInterface, Guid, ProgId hinzu.
         ProgId-Konvention ist {Namespace}. {Klasse}
  9. Setzen Sie im Ordner "Properties" im Projekt in der Datei "AssemblyInfo" ComVisible auf "true".
  10. Markieren Sie im Projekteigenschaften-Menü im Register "Registrieren für COM-Interop"
  11. Erstellen Sie das Projekt

Jetzt können Sie Ihr COM-Objekt verwenden, indem Sie seine ProgID verwenden.

Beispiel: der C # -Code:

%Vor%

und VB-Skript mit dem COM:

set obj = createObject("PSLauncher.PSLauncher") obj.launch()

und die Ausgabe wird sein:

Ich starte Skripte für einen Lebensunterhalt

    
Eyal 29.07.2010, 12:53
quelle
15

Erstellungsschritte

  1. Starten Sie Visual Studio 2013 als Administrator
  2. Installieren Sie die Visual Studio-Erweiterung Microsoft Visual Studio Installer-Projekte
  3. Erstellen Sie ein Klassenbibliotheksprojekt (WinFormActivex)
  4. Erstellen Sie Ihr Beispielfenster (MainWindow)
  5. Erstellen Sie eine neue Komponentenschnittstelle (ILauncher)
  6. Erstellen Sie eine neue Sicherheitsschnittstelle (IObjectSafety)
  7. Erstellen Sie das Komponentensteuerelement (Launcher), das Schnittstellen implementiert und das Fenster startet.
  8. Überprüfen Sie, ob alle GUIDs von Ihnen generiert wurden
  9. Überprüfen Sie, ob das Projekt für COM
  10. markiert ist
  11. Erstellen Sie das Setup-Projekt (LauncherInstaller) mit der primären Ausgabe von WinFormActivex mit der Eigenschaft Register = vsdrpCOM
  12. Installieren Sie LauncherInstaller
  13. Führen Sie Ihre Testseite in explorer (test.html)
  14. aus

Hauptfenster Sie können ein normales Formular erstellen, hier wird es vorgeneriert.

%Vor%

ILauncher

%Vor%

IObjectSafety

%Vor%

Startprogramm Bitte generieren Sie hier Ihre GUID.

%Vor%

test.html Überprüfen Sie, ob Ihre CLSID-GUID (Launcher) übereinstimmt.

%Vor%

Referenzen

Giulio Caccin 23.06.2014 13:59
quelle
13

Sie könnten ein Klassenbibliotheksprojekt verwenden. Deklarieren Sie einen Typ mit Methoden, die als COM-Objekt verfügbar gemacht werden.

Stellen Sie sicher, dass die Baugruppe COM-sichtbar gemacht wurde:

Und schließlich registrieren Sie es mit regasm.exe :

%Vor%

Jetzt wird die Assembly als ein COM-Objekt verfügbar gemacht und der von Ihnen deklarierte Typ kann von jedem Client verwendet werden, der COM unterstützt.

    
Darin Dimitrov 29.07.2010 07:12
quelle