【问题标题】:VB.Net Program with COM ActiveX capabilities具有 COM ActiveX 功能的 VB.Net 程序
【发布时间】:2011-09-12 00:38:10
【问题描述】:

假设我创建了一个程序,上面有一个文本框和一个对文本框中的文本执行某些操作的按钮。

如何使该程序 COM 可见、加载它并从另一个项目自动化它?

我的目标是能够使用 COM 自动化程序:

Dim myProj as object = createObject("myProgram")
myProj.setText("Hello World")
myProj.buttonClickEvent()

类似于如何通过互操作加载新的 excel 和自动化:

dim xl as object = createobject("excel.application")
Dim wb as object = xl.workbooks.add
Dim ws as object = wb.worksheets(1)
ws.cells(1,1) = "i love stackoverflow"

程序如何做到这一点?我正在寻找特定于 VB.Net 的答案。提前谢谢!

【问题讨论】:

  • 这在 MSDN Library 中有很好的介绍。 VB.NET 的演练在这里:msdn.microsoft.com/en-us/library/x66s8zcd.aspx
  • 这告诉你开始一个新的类库。但是,如果我希望我的表单项目作为参考,而不是 DLL 文件,该怎么办?如果我的项目中有一个 COM 对象类,我已经能够从外部程序访问该类中的例程,但我希望我的程序接口通过 interop/com/activex 自动化,我不想使用 API比如 findwindow、sendmessage 等
  • 汉斯,我希望能够说 createObject("myProj") 并让我的程序界面出现。然后我想访问 MyProj 中建立的 subs 和函数
  • 您说的是进程外自动化,类似于 Office 互操作。不,.NET 不太支持
  • 感谢您提供的信息,先生,但恕我直言,问题不在于 .NET 中的流程自动化支持程度如何,而在于它是如何完成的(如果可以的话) .

标签: vb.net com interop automation


【解决方案1】:

此页面应为您提供所需的必要详细信息:http://www.codeproject.com/KB/vb/MusaExposingCOM.aspx

您想要的这个过程通常称为“暴露 COM 接口”,这是通过早期绑定或后期绑定完成的。早期绑定意味着方法(位置)在您创建程序时是已知的,后期绑定意味着方法(位置)在您运行程序时被查找。我认为后期绑定要慢一些,但查找只需要发生一次。这是可以忽略不计的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    • 2012-10-17
    • 2010-12-16
    • 2020-05-20
    • 2021-12-23
    • 2014-03-05
    • 1970-01-01
    相关资源
    最近更新 更多