Es posible hacer un script para que pulse 3 teclas a la vez?

Iniciado por unknown1111, 5 Diciembre 2017, 12:23 PM

0 Miembros y 1 Visitante están viendo este tema.

unknown1111

Bueno gente tengo que averiguar como hacer un script para que se ejecuten la tecla "FN" + "F12" + "Ctrl (Derecho)" de mi teclado.

He mirado cosas por internet y no me ha quedado claro. Mi finalidad con esto es crear un .Bat que cuando se ejecute el sistema se ejecute ese script con esa combinación de teclas.

engel lex

el asunto es que usualmente fn no es una tecla que se virtualize en el OS, usualmente invoca una secuencia de hardware diferente que manda una tabla virtualizada al os, así que tendrías que ver que virutalizacion envía esa secuencia (si se requiere) y tu virtualizar esa

palabra del día: virtualización XD
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Eleкtro

#2
CitarEs posible hacer un script para que pulse 3 teclas a la vez?

Si, por supuesto, puedes registrar en el sistema operativo una combinación global de teclas de acceso directo que consista en 3 teclas: un modificador de tecla (ALT, CONTROL, SHIFT, WINDOWS o {NINGUNO}) y una combinación de dos teclas virtuales.

Cita de: unknown1111 en  5 Diciembre 2017, 12:23 PMMi finalidad con esto es crear un .Bat

En una herramienta tan simple, básica y limitada como Batch no puedes... ni de lejos. En otro lenguaje capacitado, sí, aunque hasta donde yo sé no es posible asignar la tecla CONTROL derecho como modificador de tecla, sino ambas teclas CONTROL al mismo tiempo (izquierda o derecha) como se especifica en la documentación de la función RegisterHotKey:


Para registrar (de forma temporal, durante la ejecución de tu programa/script) una combinación global de teclas de acceso directo, tienes que llamar a dicha función de Windows, RegisterHotKey, pasándole como primer argumento el modificador de tecla CONTROL (MOD_CONTROL) u otro modificador de tecla de los que están disponibles, y como segundo argumento le pasarías una tecla o una combinación de teclas virtuales que desees, en este caso la tecla "Function / Fn", y "F12" (VK_F12).

No dispongo de un teclado con la tecla "Fn", así que no puedo testearlo, probar y comprobar, pero en teoría creo que deberías poder usar la función MapVirtualKey / MapVirtualKeyEx para ello, aunque no estoy muy seguro sin probarlo primero... te dejo por aquí la documentación:





En resumen, lo que deberías hacer es buscar un lenguaje de verdad (no Batch, que ni es lenguaje ni es nada) que te permita realizar llamadas de invocación de plataforma a la función RegisterHotKey de la API de Windows (yo te recomendaría C# o VB.NET, pero "cualquier" otro lenguaje sirve).

También puedes usar cualquier otro lenguaje de alto nivel de abstracción con wrappers de esa función de Windows para facilitarte la tarea y la comprensión si no tienes un suficiente nivel de aprendizaje y comprensión con la programación, como por ejemplo podría ser el lenguaje de scripting AutoIt, el cual fue diseñado para automatizar con sencillez este tipo de escenarios enfocados al uso del teclado y el mouse:


Saludos.