Teclas especiales de algunos teclados

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
Jonny
Profesional del Autoit
Mensajes: 1042
Registrado: 30 Jun 2008, 20:08

Teclas especiales de algunos teclados

Mensaje por Jonny »

Hola

En un programa que estoy capturando algunas teclas, quería capturar también algunas de esas teclas que vienen en algunos teclados.

creo que a eso le llaman "Teclas multimedia". En cualquier caso, son teclas no estándar para Windows. Al menos, en la función _IsPressed() de AutoIt, no figuran, ni tampoco buscando nada relacionado con códigos virtuales de teclas en Windows. Pero, diría que si no en todos, en la mayoría de teclados están hoy en día.

Por ejemplo, en el mío, hay una tecla que silencia el sonido del ordenador (Mute). Tiene el código virtual "173". Tiene otras, para subir y bajar el volumen del sistema, otra para abrir el reproductor de Windows, o el navegador predeterminado.

La duda que tengo es:

¿Por ejemplo la tecla "Mute", que en mi caso Windows dice que es la "173", ¿Tendrá ese código virtual en cualquier ordenador... en cualquier teclado (que tenga esa tecla)??

La duda es con todas las teclas estas especiales, que aunque diría que sí, que deberían tener el mismo código virtual en cualquier teclado, no lo tengo muy claro, pues al no ser estándar, quizá si lo del código virtual depende de alguna manera del controlador del teclado, o del propio teclado, podría cambiar de uno a otro.
¿Qué os parece?

¡Espero haberme explicado bien!

Salu2!
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Teclas especiales de algunos teclados

Mensaje por Ximorro »

¿Esto no se ha preguntado ya en el foro? :smt017

Si has hecho un programa para ver el código de las teclas presionadas podías ponerlo y miramos a ver qué nos da a nosotros. Creo que había algo por aquí pero así facilitas las cosas.

De todas maneras aunque haya algunos códigos más o menos estándar es fácil que otros no lo sean, para algo esos teclados llevan sus drivers específicos...
Una opción es que cada usuario programe esas teclas la primera vez que use tu programa y guardes los códigos en un INI o algo así. Tú ve pidiendo que presione las teclas especiales, "Pulsa Mute" "Pulsa subir volumen" y vas mirando qué códigos te van saliendo...
Así puedes programar hasta las más especiales, pues el usuario podría incluso poner el nombre a la tecla que está presionando. Tú tomas el código porque la presiona y ves qué código te devuelve, y el nombre te lo da el usuario. Es una opción flexible para las teclas muy especiales.

Y eso, para las más comunes (como lo del Mute y otras) pues ponnos un programita y te decimos qué nos da a nosotros, así recopilas información para ver si hay algunas más estandarizadas.

Ciaooo
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: Teclas especiales de algunos teclados

Mensaje por Chefito »

Es como dice Ximorro, recopila información de otros ordenadores y sistemas operativos.
Yo te voy a dar los Codigos de las teclas de control (KeyControl) de algunas de estas teclas especiales.
Mi portatil es un packard bell con w7 home 64bits.
Mute: 173
Bajar volumen: 174
Subir volumen: 175
funcion+f10: 176 (avance rápido en multimedia)
función+f9: 177 (atrás rápido en multimedia)
función+f8: 178 (stop en multimedia)
función+f7: 179 (pause y play)
función+f3: 95 (suspender)
El código 255 sale cuando pulso varias teclas: para backup de bell (función+f1), activar y desactivar el wifi (función+f2) y tecla específica para entrar en un programa que muestra las redes sociales.
Ha habido combinaciones de teclas con la tecla función que no las ha detectado (func+f11,+f12,+f5,+f4,+f6). Controlan la desconexión del ratón tactil, el cambio de monitores, la extensión del monitor, más o menos brilllo en la pantalla.

Esto lo he comprobado con el script de hook del teclado.
Espero que te sirva de algo.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Teclas especiales de algunos teclados

Mensaje por Ximorro »

Bueno, he hecho un programita para comprobar los códigos que nos devuelve el teclado, lo pongo aquí para comodidad de los usuarios.
Tiene en cuenta códigos múltiples (pulsad por ejemplo ctrl izda o ctrl drcha y veréis), y teclas múltiples (ctrl+shift+alt, por ejemplo) y también los botones del ratón, aunque no coge la rueda (pulsada sí, girando no) y no creo que coja botones de ratón especiales.

Ah, el resultado lo doy en hexadecimal, pues como suele estar así en las listas "oficiales". Además es más compacto.

¡Ay va! ¿Habéis visto el "Alt Gr."? ¡Activa CUATRO códigos!

En este teclado no tengo nada especial, lo probaré en otro y os digo.

Este es el programa, no es complicado seguro que hay muchos similares pero he aquí mi versión.

Código: Seleccionar todo

#include <Misc.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>

Global $UserDLL = DllOpen("user32.dll"), $lblTit, $lblCodigos, $codigo, $txt, $txt_old
Opt("GUIOnEventMode", 1)
Opt("GUICloseOnESC", 0)
GUICreate("Teclitas", 240, 100)
$lblTit = GUICtrlCreateLabel("Teclas presionadas (código hexadecimal):", 20, 20, 200, 52, $SS_CENTER)
$lblCodigos = GUICtrlCreateLabel("", 20, 40, 200, 52, $SS_CENTER)
GUICtrlSetFont(-1, 14, 800)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Salir")
GUISetState()

$txt_old = ""
While 1
	Sleep(100)
	$txt = ""
	for $i = 0 to 255
		$codigo = StringRight(Hex($i),2) ;Pasamos a string hexadecimal
		If _IsPressed($codigo, $UserDLL) Then
			$txt &= $codigo & " "
		EndIf
	Next
	If ($txt <> $txt_old) Then
		GUICtrlSetData($lblCodigos, $txt)
		$txt_old = $txt
	EndIf
WEnd

Func _Salir()
	DllClose($UserDLL)
    Exit
EndFunc
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: Teclas especiales de algunos teclados

Mensaje por Ximorro »

Bueno, las mías:
Buscar archivos: AA (170)
Abre Outlook: B4 (180)
Mute: AD (173)
Bajar volumen: AE (174)
Subir volumen: AF (175)

Así que esas del sonido parecen más o menos estándar.

También me sale FF (255) en un par de teclas que no están programadas (ir a la web de Compaq y abrir calculadora). Reinstalé el S.O. y no tengo el driver, como no lo uso mucho tampoco me he molestado.

Probado en un teclado Compaq en un ordenador clónico con Windows Vista. Como digo al teclado no le he puesto drivers específicos, así que es lo que le ha puesto el Vista.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Responder