How to do things
AI Noob vs. Pro

List biggest files
List newest files
Show subdir sizes
Search in files
Replace word in files
List dir differences
Send files in LAN

Free Open Source:

Swiss File Knife

a command line
multi function tool.

remove tabs
list dir sizes
find text
filter lines
find in path
collect text
instant ftp or
http server
file transfer
send text
patch text
patch binary
run own cmd
convert crlf
dup file find
md5 lists
fromto clip
hexdump
split files
list latest
compare dirs
save typing
trace http
echo colors
head & tail
dep. listing
find classes
speed shell
zip search
zip dir list

Depeche View
Source Research
First Steps

windows GUI
automation

command line
file encryption

free external tools,
zero install effort,
usb stick compliant:

zip and unzip
diff and merge
reformat xml
reformat source

cpp sources

log tracing
mem tracing
hexdump
using printf

articles

embedded
stat. c array
stat. java array
var. c array
var. java array
view all text
as you type
surf over text
find by click
quick copy
multi view
find nearby
fullscreen
bookmarks
find by path
expressions
location jump
skip accents
clip match
filter lines
edit text
highlight
load filter
hotkey list
receive text
send in C++
send in Java
smooth scroll
touch scroll
fly wxWidgets
fly over Qt
search Java

how to write scripts to automate the windows GUI,
using the free AutoHotkey tool. Do you have to cope with boring repetitions of click-and-type into some windows GUI programs? Then you may need a windows scripting language for automation. This article gives a quick view into AutoHotkey, which is both free and powerful.

Download the tool here and run the installer. The file extension .ahk will be registered, that is, if you type foobar.ahk on the command line, it will be processed as an AutoHotkey script.

Example: automated clicking-away of popups.

I was once working in a company with a very complicated build system. Whenever we checked out source and compiled it for the first time, we got a crash popup similar to this:

To continue working, we had to click on the bottom right button ("Don't send"). So what we actually did was to click away this popup every time we compiled. Of course, the obvious solution would be to fix the "FooComp" compiler. But... in a nutshell, they did it this way for years, and no further questions.

So we go for the 2nd-best solution: automate the clicking-away. Create the following script:

popup-shutup.ahk

   Loop
   {
      Sleep 500
   
      if (WinExist("FooComp.exe - Application Error"))
      {
         WinActivate,FooComp.exe - Application Error,,2
         WinWaitActive,FooComp.exe - Application Error,,2
         if ErrorLevel <> 0
         {
            MsgBox,failed to activate FooComp window
            Sleep 5000
            return
         }
         MouseClick,Left,370,111
      }
   }

To run the script, either type "popup-shutup.ahk" on the windows command line, or create an icon on your desktop, pointing to it, then double-click on the icon. Both ways will result in a daemon script running permanently in background, and checking every 500 milliseconds:

  • if the popup appears. if it appears,
  • the popup window is activated.
  • it is checked if the activation succeeded (2 seconds timeout).
    the script may also be working without this check,
    but it's better to be on the safe side, to avoid GUI irritations
    through bugs within the script.
    if activation failed, the script terminates.
  • a Left Mouse Click is sent at position x=370 and y=111,
    which is the position of the "Don't send" button within the popup.
    These positions can be found out easily with the Window Spy tool
    provided with AutoHotkey.
  • the popup disappears, the script continues looping.

Now have a look at the system tray:


 
 

The green-white H tells you an AutoHotkey script is currently running. Position the mouse on this icon, press right button, and you get the ahk context menu.

Really important are Help, giving you the full syntax of all ahk commands, and the Window Spy, telling you x/y positions of every button in a window.

Whenever you change the script, select Reload This Script to have the changes applied.

Another script: auto insert text on CTRL+1 or ALT+1 keys.

setkeys.ahk

^1::
Send,C:\users\user1\documents
return

!1::
Send,With best regards{,}
return

So much as a short intruction to this tool; it actually provides a full 3GL programming language, including string processing, clipboard and file I/O, allowing automated filling in of forms and running of applications.

For further reading, continue on the AutoHotkey website.