2013-04-10 31 views
1

我試圖使用在C#中的JScript.NET中找到的新的ActiveXObject()的功能。我怎樣才能做到這一點?C#等效於JScript的新ActiveXObject

不要說你可以用COM對象做的任何事情都可以用C#來完成。如果我想這樣做,我已經有了。

+1

我想你只需要引用COM DLL在Add Reference對話框,Visual Studio將創建一個包裝你。在包裝中,你會發現一個你可以實例化的類。 – 2013-04-10 14:54:09

+0

任何只使用記事本的方法?我知道我不該,但我確實。 – Bob 2013-04-10 14:54:42

+0

有很多管道,我會強烈建議使用VS.即使你切換到一個免費版本(也許SharpDevelop或Mono開發可以幫助?) – 2013-04-10 14:57:07

回答

6

可以使用

Activator.CreateInstance(Type.GetTypeFromProgID(ProgID)) 

創建COM對象實例,然後使用後期綁定與他們合作。例如:

using System.Reflection; 
... 

Type wshType = Type.GetTypeFromProgID("WScript.Shell"); 
object wshShell = Activator.CreateInstance(wshType); 
wshType.InvokeMember("Popup", BindingFlags.InvokeMethod, null, wshShell, new object[] {"Hello, world!"}); 

,或者使用C#4的dynamic關鍵字:

// NB: Add reference to Microsoft.CSharp.dll 
dynamic wshShell = Activator.CreateInstance(Type.GetTypeFromProgID("WScript.Shell")); 
wshShell.Popup("Hello, world!"); 
+0

正是我在找的東西。 – Bob 2013-04-14 23:29:51

+0

動態工作! – fkerrigan 2015-10-05 15:30:03