I've never used IB Controller, but if it is written in java, I would assume it is simply making use of the Robot class... https://docs.oracle.com/javase/7/docs/api/java/awt/Robot.html
No IBController listens for window/frame create events (addAWTEventListener) and then recursively descends the Component tree of the Login Frame to find the controls and invokes setText() on the userName and Password JTextFields and doClick() on the Login JButton.
I just created a C# library which allow you to start/stop gateway from C# application: https://github.com/mastercs999/gateway-controller
batch files not the best way for redistribution. Also it reqiures pre-configured windows environment. Pure C# will be more elegant for this case.
Yeah. I'm aware of that. This is something I have done primarily for my self and then decided to publish. But thanks for your opinion, I added this to my TODO list
Not worked for me. Seems some programs has diff paths than in your env. Anyway thank you for sharing.
It's more matter whether IB Controller works for you. You can make it work by adjusting and running IBControllerGatewayStart.bat. The library I provided justs sets some variables here and runs it. Nothing else.