2010-09-07 8 views
2

Bonjour J'essaie de contrôler FastHenry2 via l'automatisation Windows avec Matlab. Je suis nouveau sur ce sujet. Si je compris tout droit, je dois l'ouvrir:Windows Automation avec Matlab

ax=actxserver('FastHenry2.Document');

et que de courir la fonction que je veux avec la poignée?

ax.Run('coils1.inp') 

mais cela ne fonctionne pas. Matlab ne peut pas trouver Run et utilise run à la place, ce qui est un peu de construction dans Function pas du tout lié au problème. Toutes les autres fonctions que cette interface utilisateur doit prendre en charge ne fonctionnent pas non plus. Par exemple FastHenry2.IsRunning ou FastHenry2.GetInductance. Donc, je suppose que je fais quelque chose de mal avec toute la manipulation de l'interface utilisateur. FastHenry fournit un exemple de script en utilisant VBS que j'ai joint ci-dessous et comme il fonctionne bien FastHenry devrait être installé directement sur l'ordinateur. Je suis reconnaissant pour chaque indice que je peux obtenir.

si longtemps eactor

L'exemple suivant VBS fonctionne très bien

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 
+0

Voici une déclaration de FastFieldSolver, mais les exemples qui en découlent sont basés sur Visual Basic. Beaucoup de gens ont demandé Matlab avant mais n'ont jamais eu de chance: http://www.fastfieldsolvers.com/forum/topic.asp?TOPIC_ID=118&SearchTerms=command,line – eactor

Répondre

4

Vous pourriez avoir besoin d'utiliser une autre syntaxe. Au lieu de

FastHenry2.Run('coils1.inp') 

essayez ceci. J'ai dû faire cela pour certaines méthodes sur le contrôle ActiveX Excel.Application. Je ne comprends pas pourquoi la première syntaxe ne fonctionne pas dans certains cas.

+0

Awesome !!!! Merci beaucoup, vraiment bizarre que ça ne fonctionne que de cette façon. Si je pouvais, je voterais votre réponse! – eactor