Amigo Steven.<br>Funciona perfecto! Opté por consultar el estado de la tecla, que con eso me alcanzaba.<br><br>Amigo Kalith. <br>
Al rato de haber enviado el mail, me di cuenta que en el sitio esta la
documentacion de las API. Es tristemente gracioso cuando uno tiene las
cosas delante de su nariz y no las ve ja ja. Gracias por recordarmelo,
lei que puedo consultar por la tecla Shift tambien.<br>
<br>En realidad no queria utilizar las APi de windows, para poder correr mi programa en Linux, pero tengo que entregar el trabajo y no llego con el tiempo.<br><br>Me han sido de gran ayuda, y les estoy muy agradecido.<br>
<br>Emiliano<br><br><br><div class="gmail_quote">El 20 de abril de 2009 5:35, Steven Davidson <span dir="ltr"><<a href="mailto:srd4121@njit.edu">srd4121@njit.edu</a>></span> escribió:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hola Emiliano,<div class="im"><br>
<br>
Emiliano Guido wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Buenas...<br>
Alguien sabe como detectar el estado de la tecla Bloq Mayus?<br>
O al menos como cambiarle el estado desde codigo.<br>
</blockquote>
<br></div>
Todo esto depende de las bibliotecas externas que estés usando. Si usas el API de MS-Windows, puedes usar la función 'GetKeyState()' para determinar si una tecla ha sido pulsada o no. En tu caso, te interesa escribir lo siguiente:<br>

<br>
SHORT nEstado = GetKeyState( VK_CAPITAL );<br>
<br>
if( nEstado & 1 )<br>
  cout << "Activada";<br>
else<br>
  cout << "Desactivada";<br>
<br>
Para establecer la tecla del bloqueo de las mayúsculas, puedes invocar 'SetKeyboardState()'. Sin embargo, esta función requiere un array de todos los estados de todas las teclas. Por lo tanto, sería mejor invocar 'GetKeyboardState()' previamente, para poder cambiar el estado que nos interesa para 'VK_CAPITAL', y luego pasar tal lista alterada a 'SetKeyboardState()'.<br>

<br>
Otra posibilidad es emular una tecla presionada a través de 'SendInput()'. Por ejemplo,<br>
<br>
KEYBDINPUT ki = { VK_CAPITAL, 0, 0, 0, 0 };<br>
INPUT capslock[2] = {0};<br>
capslock[0].type = INPUT_KEYBOARD;<br>
capslock[0].ki = ki;<br>
<br>
ki.dwFlags = KEYEVENTF_KEYUP;<br>
capslock[1].type = INPUT_KEYBOARD;<br>
capslock[1].ki = ki;<br>
<br>
SendInput( 2, capslock, sizeof(INPUT) );<br>
<br>
Ten presente que esta función y las definiciones de las estructuras existen a partir de MS-Windows 2000 y por tanto debes definir las siguientes constantes simbólicas:<br>
<br>
#define _WIN32_WINNT 0x0501<br>
#define WINVER 0x0600<br>
<br>
antes de incluir <windows.h>.<br>
<br>
<br>
Espero que esto te guíe.<br>
<br>
Steven<br>
<br>
<br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</blockquote></div><br>