Lawrence D’Oliveiro <lawrenced...@gmail.com> writes:
>> lot of ways: OLE and COM objects back in the day, .NET currently,
> None of the different ways of which are either a) compatible or b)
> widely supported. Particularly not in Java, as the OP was asking.
I'm quite sure there are Java bindings for all those protocols.
> Like I said, trying to automate a GUI is a waste of time. GUIs are
> designed for humans, not computers, to use.
Automation doesn't simulate button presses or anything like that: the
automate objects expose higher level user actions. E.g. the web browser
object has a navigate method and that sort of thing.
The classic automation example is embedding a chunk of an Excel
spreadsheet in the middle of a Word document, so it's displayed with
Word's fonts and formatting, but when you change a number in the
spreadsheet segment, the formulas run and the other numbers change.
What happens there is Word collects the numbers you type, then calls the
Excel automation interfaces to update the relevant spreadsheet cells and
read back new numbers. There are various hacks in KDE, Gnome, etc. to
do similar things under Linux. It's all transparent to the user and
presents useful features.
> GUIs are the end of the abstraction chain: you cannot build anything
> more on top of them.
IMHO you're not contributing useful insights through these incorrect
guesses about how Windows automation works.