Orlando FMC Posted March 24, 2016 Report Share Posted March 24, 2016 Tem jeito de identificar, e informar na barra de tarefas se a tecla CAPS LOCK está ativada? Ao fazer login, para digitar a senha do usuário, o windows 7 avisa se ela está ativada: "Tecla Caps Lock ativada". A minha máquina não tem nenhum led indicador. Às vezes, para digitar uma senha, preciso antes digitar em outro local para saber o estado de Caps Lock. Acho que esta questão não está no local adequado, mas, não encontrei o ideal. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 24, 2016 Report Share Posted March 24, 2016 #include "fivewin.ch" *---------------------------------------------------------------------- * Vejam com funciona *---------------------------------------------------------------------- * SETCAPSLOCK( .T. ou .F. ) = Liga e desliga o Capslock * SETNUMLOCK( .T. ou .F. ) = Liga e desliga o NumLock * SETSCROLLOCK( .T. ou .F. ) = Liga e desliga o ScrollLock * SETINSERT( .T. ou .F. ) = Liga e desliga o Insert *---------------------------------------------------------------------- * VERCAPSLOCK() = Sem parametros retorna o estado do Capslock * VERNUMLOCK() = Sem parametros retorna o estado do NumLock * VERSCROLLOCK() = Sem parametros retorna o estado do ScrollLock * VERINSERT() = Sem parametros retorna o estado do Insert *---------------------------------------------------------------------- /* ************* function MAIN ************* ? SETCAPSLOCK( .F. ) ? "Desligando o CapsLock" SETCAPSLOCK( .T. ) ? "Ligando o CapsLock" SETCAPSLOCK( .F. ) ? "Desligando o CapsLock" SETCAPSLOCK( .T. ) ? "Ligando o CapsLock" SETCAPSLOCK( .F. ) ? "Desligando o CapsLock" ? "O Capslock esta' " + iif( VERCAPSLOCK(), "Ligado", "Desligado" ) SETNUMLOCK( .F. ) ? "Desligando o NumLock" SETNUMLOCK( .T. ) ? "Ligando o NumLock" SETNUMLOCK( .F. ) ? "Desligando o NumLock" SETNUMLOCK( .T. ) ? "Ligando o NumLock" SETNUMLOCK( .F. ) ? "Desligando o NumLock" ? "O Numlock esta' " + iif( VERNUMLOCK(), "Ligado", "Desligado" ) SETSCROLLOCK( .F. ) ? "Desligando o ScrollLock" SETSCROLLOCK( .T. ) ? "Ligando o ScrollLock" SETSCROLLOCK( .F. ) ? "Desligando o ScrollLock" SETSCROLLOCK( .T. ) ? "Ligando o ScrollLock" SETSCROLLOCK( .F. ) ? "Desligando o ScrollLock" ? "O ScrollLock esta' " + iif( VERSCROLLOCK(), "Ligado", "Desligado" ) SETINSERT( .T. ) ? "Ligando o Insert" SETINSERT( .F. ) ? "Desligando o Insert" ? "O Insert esta' " + iif( VERINSERT(), "Ligado", "Desligado" ) return NIL */ *------------------------------------------------------------* * FUNCAO PARA ATIVAR A TECLA CAPSLOCK * *------------------------------------------------------------* #pragma begindump #define _WIN32_IE 0x0500 #define HB_OS_WIN_32_USED #define _WIN32_WINNT 0x0400 #include <windows.h> #include "hbapi.h" HB_FUNC ( SETCAPSLOCK ) { BYTE keyState[256]; GetKeyboardState((LPBYTE)&keyState); if( (hb_parl(1) && !(keyState[VK_CAPITAL] & 0)) || (!hb_parl(1) && (keyState[VK_CAPITAL] & 1)) ) { keybd_event( VK_CAPITAL, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0 ); keybd_event( VK_CAPITAL, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); } } #pragma enddump *-----------------------------------------------------------* * FUNCAO PARA ATIVAR A TECLA NUMLOCK * *-----------------------------------------------------------* #pragma begindump #define _WIN32_IE 0x0500 #define HB_OS_WIN_32_USED #define _WIN32_WINNT 0x0400 #include <windows.h> #include "hbapi.h" HB_FUNC ( SETNUMLOCK ) { BYTE keyState[256]; GetKeyboardState((LPBYTE)&keyState); if( (hb_parl(1) && !(keyState[VK_NUMLOCK] & 0)) || (!hb_parl(1) && (keyState[VK_NUMLOCK] & 1)) ) { keybd_event( VK_NUMLOCK, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0 ); keybd_event( VK_NUMLOCK, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); } } #pragma enddump *-----------------------------------------------------------* * FUNCAO PARA ATIVAR A TECLA SCROLLOCK * *-----------------------------------------------------------* #pragma begindump #define _WIN32_IE 0x0500 #define HB_OS_WIN_32_USED #define _WIN32_WINNT 0x0400 #include <windows.h> #include "hbapi.h" HB_FUNC ( SETSCROLLOCK ) { BYTE keyState[256]; GetKeyboardState((LPBYTE)&keyState); if( (hb_parl(1) && !(keyState[VK_SCROLL] & 0)) || (!hb_parl(1) && (keyState[VK_SCROLL] & 1)) ) { keybd_event( VK_SCROLL, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0 ); keybd_event( VK_SCROLL, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); } } #pragma enddump *-----------------------------------------------------------* * FUNCAO PARA ATIVAR A TECLA SCROLLOCK * *-----------------------------------------------------------* #pragma begindump #define _WIN32_IE 0x0500 #define HB_OS_WIN_32_USED #define _WIN32_WINNT 0x0400 #include <windows.h> #include "hbapi.h" HB_FUNC ( SETINSERT ) { BYTE keyState[256]; GetKeyboardState((LPBYTE)&keyState); if( (hb_parl(1) && !(keyState[VK_INSERT] & 0)) || (!hb_parl(1) && (keyState[VK_INSERT] & 1)) ) { keybd_event( VK_INSERT, 0x45, KEYEVENTF_EXTENDEDKEY | 0, 0 ); keybd_event( VK_INSERT, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0); } } #pragma enddump #pragma begindump #define _WIN32_IE 0x0500 #define HB_OS_WIN_32_USED #define _WIN32_WINNT 0x0400 #include <windows.h> #include "hbapi.h" HB_FUNC ( VERCAPSLOCK ) { BYTE keyState[256]; GetKeyboardState((LPBYTE)&keyState); hb_retl( keyState[VK_CAPITAL] ); } #pragma enddump *-----------------------------------------------------------* * FUNCAO PARA VERIFICAR A TECLA NUMLOCK * *-----------------------------------------------------------* #pragma begindump #define _WIN32_IE 0x0500 #define HB_OS_WIN_32_USED #define _WIN32_WINNT 0x0400 #include <windows.h> #include "hbapi.h" HB_FUNC ( VERNUMLOCK ) { BYTE keyState[256]; GetKeyboardState((LPBYTE)&keyState); hb_retl( keyState[VK_NUMLOCK] ); } #pragma enddump *-----------------------------------------------------------* * FUNCAO PARA VERIFICAR A TECLA SCROLLOCK * *-----------------------------------------------------------* #pragma begindump #define _WIN32_IE 0x0500 #define HB_OS_WIN_32_USED #define _WIN32_WINNT 0x0400 #include <windows.h> #include "hbapi.h" HB_FUNC ( VERSCROLLOCK ) { BYTE keyState[256]; GetKeyboardState((LPBYTE)&keyState); hb_retl( keyState[VK_SCROLL] ); } #pragma enddump *-----------------------------------------------------------* * FUNCAO PARA VERIFICAR A TECLA SCROLLOCK * *-----------------------------------------------------------* #pragma begindump #define _WIN32_IE 0x0500 #define HB_OS_WIN_32_USED #define _WIN32_WINNT 0x0400 #include <windows.h> #include "hbapi.h" HB_FUNC ( VERINSERT ) { BYTE keyState[256]; GetKeyboardState((LPBYTE)&keyState); hb_retl( keyState[VK_INSERT] ); } #pragma enddump Quote Link to comment Share on other sites More sharing options...
Orlando FMC Posted March 24, 2016 Author Report Share Posted March 24, 2016 Kapiaba, Tem jeito de fazer isto no windows, fora do FiveWin? Identificar, e informar na barra de tarefas se a tecla CAPS LOCK está ativada? Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 24, 2016 Report Share Posted March 24, 2016 Fora do FiveWin? Não sei, só uso FiveWin... Sou viciado!!! kkkkkkkkkkkkkkkkkkkkkkkkkkkk, Sorry!! Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 24, 2016 Report Share Posted March 24, 2016 E se você colocasse como um serviço do windows? http://fivewin.com.br/index.php?/topic/24542-esperando-um-servico/ uma idéia né?? abs. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.