Автоматизация Windows с Matlab - PullRequest
       8

Автоматизация Windows с Matlab

2 голосов
/ 07 сентября 2010

Здравствуйте, я пытаюсь управлять FastHenry2 с помощью автоматизации Windows с Matlab.Я новичок в этой теме.Если я все правильно понял, я должен открыть его:

ax=actxserver('FastHenry2.Document');

, а затем запустить нужную функцию с ручкой?т работа.Matlab не может найти Run и использует вместо этого run, что является некоторой сборкой в ​​Function, вообще не связанной с проблемой.Также все другие функции, которые должен поддерживать этот интерфейс, также не работают.Например, FastHenry2.IsRunning или FastHenry2.GetInductance.Так что, я думаю, что-то не так с обработкой всего пользовательского интерфейса.FastHenry предоставляет пример сценария с использованием VBS, который я прикрепил ниже, и, поскольку он работает нормально, FastHenry должен быть установлен прямо на компьютер.Я благодарен за каждую подсказку, которую я могу получить.

такой длинный eactor

Следующий пример 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

1 Ответ

4 голосов
/ 08 сентября 2010

Возможно, вам придется использовать альтернативный синтаксис.Вместо

FastHenry2.Run('coils1.inp')

попробуйте это.

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

Мне пришлось сделать это для некоторых методов элемента управления ActiveX Excel.Application.Мне непонятно, почему первый синтаксис не работает в некоторых случаях.

...