On Sunday, September 18, 2016 at 9:25:53 PM UTC+12, Paul Rubin wrote:
> Lawrence D’Oliveiro writes:
>>> The term "automation" is frequently used in the Windows world to mean
>>> programming something that you would otherwise do manually through a GUI...
>> Which is not something that GUIs are designed for. Therefore it is at
>> best an unreliable exercise, at worst futile.
> Windows applications often (usually?) provide automation interfaces,
> which are what the rest of us would call API's. This has been done in a
> lot of ways: OLE and COM objects back in the day, .NET currently, other
> things in between. It's not done by screen scraping or anything stupid
> like that. It's actually pretty well thought out, though with the usual
> layers of Microsoft and OOP bureaucracy around everything.
None of the different ways of which are either a) compatible or b) widely
supported. Particularly not in Java, as the OP was asking.
Like I said, trying to automate a GUI is a waste of time. GUIs are designed for
humans, not computers, to use.
That’s why we have command lines and scripting (which are all just programming
at different layers, of course). That’s how you automate things, building
higher-level abstract machines on top of lower-level ones. GUIs are the end of
the abstraction chain: you cannot build anything more on top of them.