Poesía Binaria

Creando macros de escritorio I: xmacroplay

Voy a hablar de dos programas para crear macros, aunque hay más, claro que sí. Los dos programas están basados en la grabación de acciones del servidor X y la simulación de movimientos del ratón, clicks y acciones de teclado.

En principio xmacroplay; lo podemos ejecutar así:

$ xmacrorec2 > mi_macro

donde mi_macro es el archivo donde vamos a grabar; este archivo, si vemos su contenido tendrá los comandos en un lenguaje muy sencillo e inteligible, lo que nos permite crear macros directamente programándolos, no grabándolos.
Lo primero que debemos hacer tras ejecutar xmacrorec2 es pulsar una tecla, ésta tecla será la que deberemos pulsar para detener la grabación.

Para ejecutar las macros, lo podemos hacer de la siguiente forma:

$ xmacroplay :0

donde :0 es la pantalla, el DISPLAY y mi_macro es el nombre de la macro.

Aunque, al menos en la versión 20000911, la última descargable desde sf.net (del año 2001, un poco antigua), se lleva un poco mal con los arrastres de ratón; vamos para hacer macros con clicks bien, pero cuando arrastramos algo, a veces no se reproducen bien las opciones. Se debe a un bug en xmacroplay.cpp, en las siguientes líneas dentro de la función eventLoop(), hay que añadir el código que tiene comentario

1
2
3
4
5
6
7
8
9
10
11
12
13
14
        else if (!strcasecmp("ButtonPress",ev))
        {
          cin >> b;
          cout << "ButtonPress: " << b << endl;
          XTestFakeButtonEvent ( RemoteDpy, b, True, Delay );
          XFlush ( RemoteDpy ); /* AÑADIR */
}
        else if (!strcasecmp("ButtonRelease",ev))
        {
          cin >> b;
          cout << "ButtonRelease: " << b << endl;
          XTestFakeButtonEvent ( RemoteDpy, b, False, Delay );
          XFlush ( RemoteDpy );/* AÑADIR */
        }

Con esta modificación todo debe ir bien, podemos, por ejemplo programar ciertas teclas en nuestro ordenador para automáticamente grabar y reproducir macros de teclado y ratón.

Aunque como dije antes, siempre podemos programar nosotros las macros a mano, o modificar lo que hemos grabado para un mejor comportamiento con los siguientes comandos:

También podría interesarte....