From: chris on
controlling a pc from lisp code,

some years ago I've started a project for automatizations of pc tasks
and I think I've reached a state to have implemented the mayor
features:

-automatizations of any mouse keyboard action (and recording).
-visual recognition from the screen
-simple editing, sorting, starting compiling, loading ... of pc-macros
(written in lisp, sbcl is the backend).
-macros and lisp images are exchangeable between users ...
-macro scheduler

planned:
-exchanging macros and images online.
-lib of valuable pc-macros


so what features to add???
From: fortunatus on
On Apr 27, 8:51 am, chris <christopham...(a)gmail.com> wrote:
> controlling a pc from lisp code,
>
> some years ago I've started a project for automatizations of pc tasks
> and I think I've reached a state to have implemented the mayor
> features:
>
> -automatizations of any mouse keyboard action (and recording).
> -visual recognition from the screen
> -simple editing, sorting, starting compiling, loading ... of pc-macros
> (written in lisp, sbcl is the backend).
> -macros and lisp images are exchangeable between users ...
> -macro scheduler
>
> planned:
> -exchanging macros and images online.
> -lib of valuable pc-macros
>
> so what features to add???

I sorely desire that windowing systems provide a macro hook at the
level of the event loop. A memorized action on a PC running MSWin or
XWin should not depend on where windows are positioned on the screen.
Memorizing mouse actions should be of the nature of memorizing what
GUI buttons were clicked -- *not* where on the screen the mouse moved
& was clicked. For always over the long term, windows are moved, or
pop-up windows appear to cover up active areas, or programs change
state and move controls around - perhaps just because some long
message appeared and grew a text field out.

I always request writers of GUI programs to provide a scripting port
via some kind of pipe or socket - filesystem or network point - that I
could sent scripting commands. That way the program could be used GUI
style but then rational automation can also be done. (Unfortunately I
haven't gotten any takers - clearly they are not automating their own
programs! Or if they do provide some script language, they are not
automating actions of their program in concert with other programs...)

Programs should be usable as building blocks for applications built on
top of them. This is the biggest shortcomming of GUI programs, and
why all my scripting ends up based around Linux/Lisp/PortableAServe or
Cygwin, even though I use MSWin natively for a lot of other Lisp
work. If your automation system can hook into the event loop, provide
a port into the event loop of a program, it would be a major step
forward.
From: chris on
Thank you for the input, I think my program meets points one and two:

1. if windows is able to identify a control, the program is able to
send any command to it (visible or not).
2. .. didn't really understand your request,
- automatize the automatization program yes!
- connect it over a socket to execute commands yes!
- there is a lisp repl with eval for accepting anything the user
would like to compute!
3. No, as far as I know that is not possible. In my program the
windows automatisation is done by autoit, a very
powerfull scriping langugage. Allmost anything autoit (that is a
lot) can do, may be done form lisp.

c.

http://www.autoitscript.com/autoit3/index.shtml
From: Aravindh Johendran on

>
> Programs should be usable as building blocks for applications built on
> top of them.  This is the biggest shortcomming of GUI programs, and
> why all my scripting ends up based around Linux/Lisp/PortableAServe or
> Cygwin, even though I use MSWin natively for a lot of other Lisp
> work.  If your automation system can hook into the event loop, provide
> a port into the event loop of a program, it would be a major step
> forward.


I completely agree with that. I think, where possible, systems/
applications should be provided with ability to be modified/customized/
extended.
AUTOCAD and Emacs' longevity is due to this ability I think.