Object 在OLE应用程序的黑暗中工作

Object 在OLE应用程序的黑暗中工作,object,ms-access,vba,typelib,Object,Ms Access,Vba,Typelib,我在黑暗中工作。我的电脑上有一个由公司父亲安装的应用程序,允许通过编程访问报告库。我无法让任何人告诉我应用程序的属性或方法(除了一些脚本中的几个方法……) 我使用Access VBA访问应用程序,它确实加载了它(当执行CreateObject()语句时,它会显示一个GUI) 一旦我调用它,我如何让它列出它的属性和方法?您可以看到我的努力,但是当它执行“for each”语句时,它没有说“Object不支持这个属性或方法” Sub StartDataNav() Set oleDataNav =

我在黑暗中工作。我的电脑上有一个由公司父亲安装的应用程序,允许通过编程访问报告库。我无法让任何人告诉我应用程序的属性或方法(除了一些脚本中的几个方法……)

我使用Access VBA访问应用程序,它确实加载了它(当执行CreateObject()语句时,它会显示一个GUI)

一旦我调用它,我如何让它列出它的属性和方法?您可以看到我的努力,但是当它执行“for each”语句时,它没有说“Object不支持这个属性或方法”

Sub StartDataNav()
  Set oleDataNav = CreateObject("DataNavigator.Application")
  Dim p As Object
  For Each p In oleDataNav.Properties

  Next p

End Sub

如果需要,我可以更改为C#.net,但我没有足够的经验调用我认为是非托管的应用程序……

您可以使用TlbInf32.dll(TLI)检查目标应用程序的公共成员。这似乎是一个好的开始


或者只需使用对象浏览器检查TLI本身(在VBE中引用它之后)。

在您的行上放置一个断点

Dim p As Object
然后打开“局部变量”窗口(查看-->局部变量)


这将通过在“局部变量”窗口中展开oleDataNav对象,让您可以查看对象的所有属性。

我决定必须注册该对象,因此我启动了Visual Studio并创建了一个C#.net控制台应用程序,然后设置对DataNavigator对象的引用。Intellisense现在显示了这些方法,尽管它根本没有显示属性(这可能解释了上面“for each”语句的问题)。到目前为止,我一直在摸索,尽管所有方法的所有参数都是对象,除了名称之外没有任何信息。我正在找回错误代码,无法解释它们。Sux。。。。