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

 

Responder a