【问题标题】:C# Equivalent of JScript's new ActiveXObjectC# 等效于 JScript 的新 ActiveXObject
【发布时间】:2013-04-10 14:50:56
【问题描述】:

我正在尝试使用在 C# 中的 JScript.NET 中找到的新 ActiveXObject() 的功能。我该怎么做?

不要说你可以用 COM 对象做的任何事情都可以在 C# 中完成。如果我想那样做,我早就愿意了。

【问题讨论】:

  • 我认为您只需在“添加引用”对话框中引用 COM dll,Visual Studio 就会为您创建一个 Wrapper。在包装器中,您会找到一个可以实例化的类。
  • 仅使用记事本有什么办法吗?我知道我不应该,但我应该这样做。
  • 管道太多了,我强烈建议使用 VS。即使您切换到免费版本之一(也许 SharpDevelop 或 Mono 开发可以提供帮助?)
  • 好的。我会考虑的。那么没有VS可以吗?
  • 可能有.Net SDK,还有tlbimp.exe command line

标签: c# activex jscript.net


【解决方案1】:

您可以使用创建 COM 对象的实例

Activator.CreateInstance(Type.GetTypeFromProgID(ProgID))

然后使用后期绑定与他们一起工作。例如:

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!");

【讨论】:

  • 正是我想要的。
猜你喜欢
  • 1970-01-01
  • 2012-06-25
  • 1970-01-01
  • 2012-02-18
  • 2011-01-29
  • 1970-01-01
  • 2017-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多