FodasticC 0 Denunciar post Postado Agosto 2, 2009 como eu faço um macro que fique apertando a Tecla: Barra de espaço toda hora eu fiz isso: procedure TForm1.Timer1Timer(Sender: TObject); begin keybd_event(VK_SPACE, 0, 0, 0); end; agora quero add uma funçao de parar ele pois fica direto, entao preciso de ajuda pra add a funçao de parar e de continuar Compartilhar este post Link para o post Compartilhar em outros sites
FodasticC 0 Denunciar post Postado Agosto 2, 2009 nao esta dando pra editar entao vo postar denovo: e tambem que ele fique ativo no jogo pois, só fica em outros lugares: como bloco de notas,sites etc e no jogo nao. se alguem puder me ajudar agradeço flws aew pessoal Compartilhar este post Link para o post Compartilhar em outros sites
Daniel Sanches 0 Denunciar post Postado Agosto 2, 2009 eu tenho uma função para simulação de teclas que encontrei na net, porém, não testei... teste aí para ver se serve pra resolver seu problema: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure PostKeyEx32(key: Word; const shift: TShiftState; specialkey: Boolean); { Parâmetros: * key : código virtual da tecla a ser enviada. Para teclas que possuem caracteres este será o código ANSI (Ord(character)) . * shift : estado das teclas de modificação. É um conjunto, de modo que você pode especificar várias teclas (shift, control, alt, botões do mouse) todas juntas. O tipo TShiftState é declarado na unit Classes. * specialkey: normalmente este valor deve ser False. Defina-o como True para especificar uma tecla no teclado numérico. } 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; j: Integer; begin for j := 1 to 3 do begin if shiftkeys[j].shift in bShift then keybd_event(shiftkeys[j].vkey, MapVirtualKey(shiftkeys[j].vkey, 0), 0, 0); end; 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 j := 3 downto 1 do begin if shiftkeys[j].shift in bShift then keybd_event(shiftkeys[j].vkey, MapVirtualKey(shiftkeys[j].vkey, 0), KEYEVENTF_KEYUP, 0); end; end; procedure TForm1.Button1Click(Sender: TObject); begin // Simula PRINTSCREEN - snapshot da tela inteira //PostKeyEx32(VK_SNAPSHOT, [], False); // Simula PRINTSCREEN - snapshot da janela ativa //PostKeyEx32(VK_SNAPSHOT, [ssAlt], False); // Simula a tecla Windows da esquerda //PostKeyEx32(VK_LWIN, [], False); // Simula Alt+F4 - fecha a janela ativa PostKeyEx32(VK_F4, [ssAlt], False); end; end. abraços !!! Compartilhar este post Link para o post Compartilhar em outros sites
FodasticC 0 Denunciar post Postado Agosto 3, 2009 Ainda nao consegui deixar ativo na janela que esta em foco :( Compartilhar este post Link para o post Compartilhar em outros sites