您好,我正在尝试使用 Matlab 通过 Windows 自动化控制 FastHenry2。 我对这个话题很陌生。如果我理解一切正确,我必须打开它:
ax=actxserver('FastHenry2.Document');
然后用句柄运行我想要的函数?
ax.Run('coils1.inp')
但这不起作用。 Matlab 找不到 Run 并使用 run 代替,这是一些与问题完全无关的内置函数。此外,此 UI 应支持的所有其他功能也不起作用。例如 FastHenry2.IsRunning 或 FastHenry2.GetInductance。所以我想我在整个用户界面处理上做错了。 FastHenry 提供了一个使用 VBS 的示例脚本,我在下面附上了它,因为它工作正常,所以 FastHenry 应该直接安装在计算机上。我很感谢我能得到的每一个提示。
这么久了 Actor
以下 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
最佳答案
您可能需要使用替代语法。而不是
FastHenry2.Run('coils1.inp')
试试这个。
invoke(FastHenry2, 'Run', 'coils2.inp')
我必须对 Excel.Application ActiveX 控件上的某些方法执行此操作。我不清楚为什么第一种语法在某些情况下不起作用。
关于matlab - 使用 Matlab 进行 Windows 自动化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3660649/