HOTKEY DELPHI 7

Do teclado para o computador

Interessante ne ? Se voce leu ate aqui vamos comecar a programar
Delphi 7 :
Modo 1 de HotKeys
Crie o seu projeto apos isto , declare na sessao private o procedimento para mensagem.
CDG
private procedure WMHotkey(var Msg: TWMHotkey); message WM_HOTKEY;
Apos isso declare nas variaveis o seguinte
Código:
var exTref: TexTref;
Ante de tudo vamos codar uma procedure para freezar checkboxes que eu fiz a algum tempo
CDG
procedure Freezar(checkbox:tcheckbox); // veja que eu crio e deixo o elemento checkbox indefinido , voce ira definir na procedure begin with checkbox do begin case checked of true: begin checked:=false; end; false: checked:=true; end; end; end; // Caso tenha dificuldade para interpretar a procedure acima , me avise.
Agora vamos codar a procedure das hotkeys
O que consiste o codigo abaixo ?
Trata-se do corpo das mensagens essa procedure sera onde ira ficar os comandos do que irei fazer depois , vejam.
TexTref = Nome Da Minha Form
CDG
procedure TexTref.WMHotKey(var Msg: TWMHotKey); begin case Msg.HotKey of // caso a mensagem da hotkey for 1: begin //primeiro ShowMessage('Ctrl + J Funcionou'); 2 : begin // outro ? ShowMessage('Ctrl + A Funcionou'); end; end; end; // Insira um timer com intervalo de 1 procedure TexTref.keyTimer(Sender: TObject); begin // API // Registro de Hotkey(minhajanela,o comando do wmhotkey , CONTROL,Ord LETRA Desejada RegisterHotkey(Handle, 1, MOD_CONTROL, Byte(Ord('J'))); RegisterHotkey(Handle, 2, MOD_CONTROL, Byte(Ord('A))); // se quiser usar outros comandos como f12 e so fazer assim RegisterHotkey(Handle, 7, MOD_CONTROL, VK_f12);end; end;
Vamos agora para outro metodo que ja postei anteriormente , porem ele tem um defeito , ele acaba ativando e as vezes falha na ativacao da hotkey , porem e muito bom tambem e mais simples.
Modo 2 - HotKey
CDG
var comando : boolean; procedure TForm1.FormCreate(Sender: TObject); begin Comando := true; end; Neste exemplo iremos usar apenas uma function que eu fiz para facilitar e o resto fica facil. function TForm1.Asskiller(Ass : integer):boolean; begin Result := False; if odd(GetAsyncKeyState(Ass)) then Result := True; end;
CDG
Apos isso declare um timer interval 1 e escreva o seguinte procedure TexTref.keyTimer(Sender: TObject); begin if Asskiller(VK_12) then ShowMessage('F12 Funcionou'); If Asskiller($4A) and Asskiller(VK_CONTROL) then ShowMessage('Ctrl + J Funcionou'); end; // Neste metodo as hotkeys utilizadas sempre serao necessarias utilizar os codigos da tabela ASCII
Ao Final - Tabela da ASCII
CDG
VK_LBUTTON 01 Left mouse button VK_RBUTTON 02 Right mouse button VK_CANCEL 03 Control-break processing VK_MBUTTON 04 mIddle mouse button VK_BACK 08 BACKSPACE VK_TAB 09 TAB VK_CLEAR 0C CLEAR VK_RETURN 0D ENTER VK_SHIFT 10 SHIFT VK_CONTROL 11 CTRL VK_MENU 12 ALT VK_PAUSE 13 PAUSE VK_CAPITAL 14 CAPS LOCK VK_ESCAPE 1B ESC VK_SPACE 20 SPACEBAR VK_PRIOR 21 PAGE UP VK_NEXT 22 PAGE DOWN VK_END 23 END VK_HOME 24 HOME VK_LEFT 25 LEFT ARROW VK_UP 26 UP ARROW VK_RIGHT 27 RIGHT ARROW VK_DOWN 28 DOWN ARROW VK_SELECT 29 SELECT VK_PRINT 2A PRINT VK_EXECUTE 2B EXECUTE VK_SNAPSHOT 2C PRINT SCREEN VK_INSERT 2D INS VK_DELETE 2E DEL VK_HELP 2F HELP 30 0 31 1 32 2 33 3 34 4 35 5 36 6 37 7 38 8 39 9 41 A 42 B 43 C 44 D 45 E 46 F 47 G 48 H 49 I 4A J 4B K 4C L 4D M 4E N 4F O 50 P 51 Q 52 R 53 S 54 T 55 U 56 V 57 W 58 X 59 Y 5A Z VK_NUMPAD0 60 Numeric keypad0 VK_NUMPAD1 61 Numeric keypad1 VK_NUMPAD2 62 Numeric keypad2 VK_NUMPAD3 63 Numeric keypap3 VK_NUMPAD4 64 Numeric keypad4 VK_NUMPAD5 65 Numeric keypad5 VK_NUMPAD6 66 Numeric keypad6 VK_NUMPAD7 67 Numeric keypad7 VK_NUMPAD8 68 Numeric keypad8 VK_NUMPAD9 69 Numeric keypad9 VK_SEPARATOR 6C Separator VK_SUBTRACT 6D Subtract VK_DECIMAL 6E Decimal VK_DIVIDE 6F Divide VK_F1 70 F1 VK_F2 71 F2 VK_F3 72 F3 VK_F4 73 F4 VK_F5 74 F5 VK_F6 75 F6 VK_F7 76 F7 VK_F8 77 F8 VK_F9 78 F9 VK_F10 79 F10 VK_F11 7A F11 VK_F12 7B F12 VK_F13 7C F13 VK_F14 7D F14 VK_F15 7E F15 VK_F16 7F F16 VK_F17 80H F17 VK_F18 81H F18 VK_F19 82H F19 VK_F20 83H F20 VK_F21 84H F21 VK_F22 85H F22 VK_F23 86H F23 VK_F24 87H F24 VK_NUMLOCK 90 NUM LOCK VK_SCROLL 91 SCROLL LOCK VK_LSHIFT A0 Left SHIFT VK_RSHIFT A1 Right SHIFT VK_LCONTROL A2 Left CONTROL VK_RCONTROL A3 Right CONTROL VK_LMENU A4 Left MENU VK_RMENU A5 Right MENU VK_PLAY FA Play VK_ZOOM FB Zoom

Comentários

Downs Turbo