summaryrefslogtreecommitdiffstats
path: root/VisualNaCro/README
diff options
context:
space:
mode:
Diffstat (limited to 'VisualNaCro/README')
-rw-r--r--VisualNaCro/README88
1 files changed, 0 insertions, 88 deletions
diff --git a/VisualNaCro/README b/VisualNaCro/README
deleted file mode 100644
index 8c92b32..0000000
--- a/VisualNaCro/README
+++ /dev/null
@@ -1,88 +0,0 @@
-This is VisualNaCro.
-
-DISCLAIMER: recorder.pl is not yet functional.
-
-What does it?
-
- It is a Perl module meant to remote control a VNC server.
-
- It includes a recorder (written in Perl) to make it easy to
- record a macro, which is just a Perl script, and which you can
- modify to your heart's content.
-
- The most important feature, however, is that you can mark a
- rectangle which the Perl script will try to find again when you
- run it. Thus when you play a game and want to hit a certain button,
- you just hit the Ctrl key twice, mark the button, and from then on,
- all mouse movements will be repeated relative to that button, even
- if the button is somewhere else when you run the script the next
- time.
-
- If you know Tcl Expect, you will recognize this approach. Only this
- time, it is not text, but an image which is expected.
-
-How does it work?
-
- It acts as a VNC proxy: your Perl script starts its own VNC server.
- The script now can intercept inputs and outputs, and act upon them.
- In order to write a macro, start
-
- recorder.pl --script my-macro.pl --timing host:port
-
- connect with a vncviewer of your choice to <host2>:23, where <host2>
- is the computer on which recorder.pl was started (not necessarily the
- same as the VNC server!). Now your actions are recorded into
- my_macro.pl, and the images you want to grep for will be saved as
- my_macro-1.pnm, my_macro-2.pnm, ...
-
- In order to finish the script, hit Ctrl twice and say "q".
-
-Why did I do it?
-
- Because I could ;-)
-
- No really, I needed a way to write automated tests. While there
- exist a lot of OpenSource programs for web testing, I found none
- of them easy to use, and for GUI testing I found xautomation.
-
- Xautomation has this "visual grep" (or "graphical expect") feature:
- given an image it tries to find it on the desktop and returns the
- coordinates. Unfortunately, there is no easy way to record macros
- with it, and it only works on X11.
-
- As I know VNC pretty well, and there are VNC servers for every OS
- and gadget, I thought it might be cool to have this feature to
- control a VNC server.
-
- Actually, it makes it even easier: with plain X11, for example, you
- can not know where on the screen the action is if you don't check
- the whole screen. This complex problem is beautifully addressed
- in Karl Runge's x11vnc.
-
- My main purpose is to run regression tests on different browsers,
- which I can easily do by starting Xvnc and using VisualNaCro.
-
-How did I do it?
-
- I wondered long about how to do it. I couldn't take the same approach
- as xautomation: I cannot connect to the VNC server thousand times
- per second. So I decided to create an interface of LibVNCServer/
- LibVNCClient for use in a script language.
-
- Fortunately, this task is made very, very easy by SWIG. As Perl
- is one of my favorite script languages, I decided to use this.
- But SWIG makes it easy to use the very same interface for other
- popular languages, so you are welcome to port VisualNaCro to
- the language of your choice!
-
-Isn't it pronounced "Visual Macro"?
-
- Yes. But I liked the Visual Na Cro play of acronyms. I'm sorry if
- you don't find it funny.
-
-What's the license?
-
- GPL. It is based on LibVNCServer/LibVNCClient, so it has to be.
- If you want to port this package to use vncreflector, which has a
- BSD license, go ahead.
-