GUI の自動ツールとしては,xdotool
などが有名だが,そういったツールを使用できない場合は自作するのもひとつの手段.
マウスポインターを指定した座標に動かして,クリックするだけのプログラムならば,数行のコードで実現できる.
click.c
--------------------------------------------------------------------------------
#include <stdlib.h>
#include <X11/extensions/XTest.h>
int main ( int argc, char ** argv )
{
// Arguments 1 is Point of X, Argument 2 is Point of Y
int position[2] = {atoi ( argv[1] ), atoi ( argv[2] ) };
// Open Default Display
Display * display = XOpenDisplay ( NULL );
if ( display != NULL )
{
// Open 'Virtual core XTEST pointer'
XDevice * device = XOpenDevice ( display, 4 );
if ( device != NULL )
{
// Move Poitner
XTestFakeDeviceMotionEvent ( display, device, False, 0, position, 2, 0 );
// Press & Release Left Button
XTestFakeDeviceButtonEvent ( display, device, Button1, True, NULL, 0, 0 );
XTestFakeDeviceButtonEvent ( display, device, Button1, False, NULL, 0, 0 );
XCloseDevice ( display, device );
}
XCloseDisplay ( display );
}
return 0;
}
$ gcc -lX11 -lXi -lXtst click.c -o click
$ ./click 100 500