tenta isso, fiz até um programinha de macro com ela. // Exemplo : PostKeyEx32(Ord('A'), [ssCtrl], false); // Envia Ctrl+A para o controle que tiver o foco. // Key : virtual keycode da tecla a enviar. Para caracteres // imprimíveis informe o código ANSI (Ord(CHARACTER)). // Shift : estado das teclas modificadoras. // Shift, Control, Alt, Mouse Buttons. // SpecialKey: normalmente deve ser False. Informe True se // a tecla desejada for, por exemplo, do teclado numérico. procedure PostKeyEx32(Key: Word; const Shift: TShiftState; SpecialKey: boolean); type TShiftKeyInfo = Record shift: Byte; vkey : Byte; End; byteset = Set of 0..7; const ShiftKeys: array [1..3] of TShiftKeyInfo = ((shift: Ord(ssCtrl); vkey: VK_CONTROL ), (shift: Ord(ssShift); vkey: VK_SHIFT ), (shift: Ord(ssAlt); vkey: VK_MENU )); var Flag: DWORD; bShift: ByteSet absolute shift; i: Integer; begin for i := 1 to 3 do begin if shiftkeys[i].shift in bShift then Keybd_Event(ShiftKeys[i].vkey, MapVirtualKey(ShiftKeys[i].vkey, 0), 0, 0); end; // for if SpecialKey Then Flag := KEYEVENTF_EXTENDEDKEY else Flag := 0; Keybd_Event(Key, MapvirtualKey(Key, 0), Flag, 0); Flag := Flag or KEYEVENTF_KEYUP; Keybd_Event(Key, MapvirtualKey(Key, 0), Flag, 0); for i := 3 DownTo 1 do begin if ShiftKeys[i].shift in bShift then Keybd_Event(shiftkeys[i].vkey, MapVirtualKey(ShiftKeys[i].vkey, 0), KEYEVENTF_KEYUP, 0); end; // for end; // PostKeyEx32
Sávio Cler ICQ 142428832 www.sgm.rg3.net [EMAIL PROTECTED] Sto A. de Pádua - Rio de Janeiro Contato Pessoal: (22)9812-0656 ~ ~ ( @ @ ) -------o0Oo-(_)-oO0o------- Precisando de dicas? www.deephi.hpg.com.br --------------------------- Mais de 30000 downloads ---------ooO---Ooo--------- ----- Original Message ----- From: "Rodrigo Cesar" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, September 22, 2004 2:38 PM Subject: [delphi-br] Simular teclado Alguem sabe como faço para que o windows entenda que o teclado foi pressionado ou o mouse movido? Não adianta fazer Mouse_Event porque esta função apenas poe na lista de menssagens do aplicativo a menssagem do mouse. Eu preciso segurar a sessão de um terminal service do windows 2003, algo parecido com não permitir que o computador hiberne. Preciso de algo que faça um evento direto na porta do teclado ou do mouse; -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Yahoo! Grupos, um serviço oferecido por: ---------------------------------------------------------------------------- ---- Links do Yahoo! Grupos a.. Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ b.. Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!. -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html