Hace instantes surgió un problema en un Laptop, y es que como no tienen el teclado numérico (+ y -) y a pesar de probar con la tecla Fn, tampoco se lograba agrandar el tamaño del borrador de Paint.
Por lo tanto me propuse escribir un pequeño programita que permita reemplazar dichas teclas.
Averiguando me encontré con algunas funciones de la API de Windows.
- GetAsyncKeyState
- FindWindow
- GetForegroundWindow, y
- keybd_event
Con GetAsyncKeyState podemos obtener el estado del teclado, devuelve un valor de 2bytes, y si el bit más significativo está en alta, significa que está presionado.
Por tanto realicé la siguiente función en Delphi:
GetAsyncKeyState(Ord(Edit2.text[1]))and $8000)=$8000
Lo que hace es comparar el bit mencionado de la tecla que hemos asignado en el campo de texto Edit2.
Este es el diseño inicial.
FindWindow y GetForegroundWindow nos servirán para : encontrar una aplicación en ejecución (MSPaint) y la ventana que tiene el foco de atención.
(FindWindow(‘MSPaintApp’,nil)=GetForegroundWindow)
Aquí lo que hacemos es comparar si la ventana de MSPaint encontrada es igual a la actual en uso.
Finalmente utilizamos keybd_event para enviar teclados
Sleep(5);
keybd_event(VK_ADD,MapVirtualKey(VK_ADD,0),0,0);Sleep(5); keybd_event(VK_ADD,MapVirtualKey(VK_ADD,0),KEYEVENTF_KEYUP,0);
Con ello ya hemos enviado la tecla + (VK_ADD) y para la tecla - utilizamos VK_SUBTRACT
Al final todo ello se realiza dentro de un objeto TTimer el cual se encargará de verificar en cierto intervalo de tiempo (en mi caso 100)
Finalmente aquí tiene el programa para que puedan probarlo ustedes mismos.
No hay comentarios:
Publicar un comentario