Publi

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:

  • MotionNotify X Y : Mueve el rató a un punto X,Y de la pantalla
  • ButtonPress N : Pulsa el botón N del ratón (1=izquierdo, 2=rerecho, 3=centro, 4,5=rueda del ratón en algunos sistemas, etc)
  • Delay N : Retrasa el script N segundos, deteniendo su ejecución un tiempo
  • ButtonRelease N : Suelta el botón N del ratón
  • KeyCodePress C : Pulsa la tecla con el código C (podemos usar xev para ver los códigos de teclas)
  • KeyCodeRelease C : Suelta la tecla con el código C
  • KeyStrPress S : Pulsa la tecla llamada S (Es el nombre de forma de cadena de caracteres, por ejemplo “Escape”, “F5”, “Control_L”, etc; podemos utilizar xev para ver los nombres también)
  • KeyStrRelease S : Suelta la tecla llamada S

También podría interesarte...

There are 2 comments left Ir a comentario

  1. Pingback: Bitacoras.com /

  2. Pingback: BlogESfera.com /

Leave a Reply