Hallo,
ich schreibe derzeit eine .Net App, die die Inputs (Mouse/Keyboard) eines CATIA Users simuliert. Ich will damit ein Prozess automatisieren, welches die Funktion Unfold (Workbench GSD) nützt. Ich hätte gerne die Funktion über die Automation API verwendet, allerdings ist die API an der Stelle -leider- nicht ausreichend für mein Szenario ("Transfer" Funktion nicht unterstürzt), deswegen der Weg über Windows Handling (user32.dll / SendMessage).
Dieser Weg funktioniert auch ziemlich gut, ich kann die meisten Controls des Fensters problemlos aktivieren, nur das eine nicht: das TabControl (s. Bild).
Nachdem ich die Unfold Command exekutiert habe, komme ich mit
FindRootWindowList("Unfold Definition")
auf die Handlers der Windows (Controls) des Fensters und dann kann ich auch die Buttons aktivieren:
WindowsAPI.SendMessage(myButtonHandler, BM_CLICK, IntPtr.Zero, IntPtr.Zero);
Nur die Tabs lassen sich somit nicht ändern. Doch die entsprechende Handlers sind als Button gekennzeichnet (WinClass). Ich vermute, hier geht es nicht um Microsoft Standard Button Control sondern um eine Dassault spezifische Control, die sich möglicherweise nicht über die user32.dll Library ansprechen lässt. Deswegen versuche ich mein Glück auf diesem Forum.
Über den TabContainer Window bin ich auch nicht erfolgreicher gewesen:
WindowsAPI.SendMessage(myTabContainerHandler, TCM_SETCURFOCUS, tabIndex, 0);
Hier wieder vermute ich, das der Tab Control was Dassault spezifisches ist / kein Derivat vom Microsoft SysTabControl32...
Hat also jemand schon Erfahrung mit so ein Thema gemacht?
------------------
Pierre
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP