Benutzer mit den meisten Antworten
COM Objekt aufrufen

Frage
-
Hi,
ich möchte einen Aufruf an einem COM-Objekt machen. In VB6 sieht der Code wie folgt aus:
Dim o As Object 'Das COM Object
Set o = CreateObject("ProgID")
If Not (o Is Nothing) Then
retVal = o.MethodeDieIchAufrufenMoechte
End IfWie kann ich diesen Aufruf umsetzen, ohne dass ich eine Referenz auf das COM Objekt aufnehmen muss?
Danke
Christian
Antworten
-
Hallo Christian,
hier Beispiele dazu ....
[Späte Bindung bei C# am Beispiel Word]
http://dzaebel.net/LatebindWord.htm"Word.Application" ist dabei Deine ProgID.
Eine Methode aufrufen über InvokeMember nebst BindingFlags.InvokeMethod.
ciao Frank- Als Antwort markiert Christian315 Freitag, 20. Mai 2011 10:08
-
Hallo Christian,
Wenn Du späte Bindung verwenden möchtest:
Type wordAppType = Type.GetTypeFromProgID("Word.Application"); if (wordAppType != null) { object wordApp = Activator.CreateInstance(wordAppType); if (wordApp != null) { object objTrue = true; wordAppType.InvokeMember("Visible", System.Reflection.BindingFlags.SetProperty, null, wordApp, new object[] {objTrue}); } }
Ab C# 4.0 gibt es das keyword dynamic, welches das COM-Interop wesentlich erleichtert. Informiere Dich bitte hier dazu:
Verwenden des Typs dynamic (C#-Programmierhandbuch):
http://msdn.microsoft.com/de-de/library/dd264736.aspxGruß
Marcel- Als Antwort markiert Christian315 Freitag, 20. Mai 2011 10:08
Alle Antworten
-
Hallo Christian,
hier Beispiele dazu ....
[Späte Bindung bei C# am Beispiel Word]
http://dzaebel.net/LatebindWord.htm"Word.Application" ist dabei Deine ProgID.
Eine Methode aufrufen über InvokeMember nebst BindingFlags.InvokeMethod.
ciao Frank- Als Antwort markiert Christian315 Freitag, 20. Mai 2011 10:08
-
Hallo Christian,
Wenn Du späte Bindung verwenden möchtest:
Type wordAppType = Type.GetTypeFromProgID("Word.Application"); if (wordAppType != null) { object wordApp = Activator.CreateInstance(wordAppType); if (wordApp != null) { object objTrue = true; wordAppType.InvokeMember("Visible", System.Reflection.BindingFlags.SetProperty, null, wordApp, new object[] {objTrue}); } }
Ab C# 4.0 gibt es das keyword dynamic, welches das COM-Interop wesentlich erleichtert. Informiere Dich bitte hier dazu:
Verwenden des Typs dynamic (C#-Programmierhandbuch):
http://msdn.microsoft.com/de-de/library/dd264736.aspxGruß
Marcel- Als Antwort markiert Christian315 Freitag, 20. Mai 2011 10:08