2

您好,我正在尝试使用 Matlab 通过 Windows 自动化控制 FastHenry2。我是那个话题的新手。如果我理解正确,我必须打开它:

ax=actxserver('FastHenry2.Document');

而不是用句柄运行我想要的功能?

ax.Run('coils1.inp') 

但这不起作用。Matlab 找不到 Run 并使用 run 代替,这是一些与问题完全无关的内置函数。此外,此 UI 应支持的所有其他功能也不起作用。例如 FastHenry2.IsRunning 或 FastHenry2.GetInductance。所以我想我在整个 UI 处理上做错了。FastHenry 提供了一个使用 VBS 的示例脚本,我附在下面,因为它工作正常,FastHenry 应该直接安装在计算机上。我很感谢我能得到的每一个提示。

这么长的反应器

以下 VBS 示例工作正常

Dim FastHenry2
pathPos = InstrRev(Wscript.ScriptFullName, Wscript.ScriptName)
path = left(Wscript.ScriptFullName, pathPos-1)

Set FastHenry2 = CreateObject("FastHenry2.Document")
couldRun = FastHenry2.Run("""" + path + "coils1.inp""")

Do While FastHenry2.IsRunning = True
  Wscript.Sleep 500
Loop

inductance = FastHenry2.GetInductance()
WScript.Echo "Coils1 mutual inductance is " + CStr(inductance(0, 0, 1))

FastHenry2.Quit
Set FastHenry2 = Nothing
4

1 回答 1

4

您可能需要使用替代语法。代替

FastHenry2.Run('coils1.inp')

试试这个。

invoke(FastHenry2, 'Run', 'coils2.inp')

对于 Excel.Application ActiveX 控件上的某些方法,我不得不这样做。我不清楚为什么第一种语法在某些情况下不起作用。

于 2010-09-08T18:33:35.567 回答