按键模拟_注入线程之后国F也可以按键模拟

//每隔几秒_按键模拟
按键模拟_注入线程之后国F也可以按键模拟
function  SendKey ( Str : string ): Integer ;
var
   MyHwnd : HWND ;
   KeyValue : integer ;
begin
   {功能模拟发送按键:1~9,F1~F8}
     MyHwnd := FindWindow ( nil , 'Element Client' );
    if  Str = '1'   then  KeyValue := 49 ;
    if  Str = '2'   then  KeyValue := 50 ;
    if  Str = '3'   then  KeyValue := 51 ;
    if  Str = '4'   then  KeyValue := 52 ;
    if  Str = '5'   then  KeyValue := 53 ;
    if  Str = '6'   then  KeyValue := 54 ;
    if  Str = '7'   then  KeyValue := 55 ;
    if  Str = '8'   then  KeyValue := 56 ;
    if  Str = '9'   then  KeyValue := 57 ;
    if  Str = 'F1'  then  KeyValue := VK_F1 ;
    if  Str = 'F2'  then  KeyValue := VK_F2 ;
    if  Str = 'F3'  then  KeyValue := VK_F3 ;
    if  Str = 'F4'  then  KeyValue := VK_F4 ;
    if  Str = 'F5'  then  KeyValue := VK_F5 ;
    if  Str = 'F6'  then  KeyValue := VK_F6 ;
    if  Str = 'F7'  then  KeyValue := VK_F7 ;
    if  Str = 'F8'  then  KeyValue := VK_F8 ;
   sendmessage ( MyHwnd , wm_keydown , KeyValue , 0 );
   sendmessage ( MyHwnd , wm_keyup , KeyValue , 0 );
end ;

procedure  TForm1 . CheckBox1Click ( Sender :  TObject );
begin
  if  StrToFloat ( Edit1 . text )  <  1  then  Edit1 . Text := '1' ;  //Timer能接受最小的值为1
  if  CheckBox1 . Checked  then
  begin
    Timer1 . Enabled := True ;
    Timer1 . Interval := Round ( StrToFloat ( Edit1 . text )* 1000 );  //1秒=1000毫秒 Round对一个实数进行四舍五入
    Edit1 . Enabled := False ;
  end
  else
  begin
    Timer1 . Enabled := False ;
    Edit1 . Enabled := True ;
  end ;
end ;

procedure  TForm1 . FormCreate ( Sender :  TObject );
begin
  Timer1 . Enabled := false ;
end ;

procedure  TForm1 . Timer1Timer ( Sender :  TObject );
begin
   SendKey ( ComboBox1 . text ); //ComboBox1.text
end ;

procedure  TForm1 . Edit1KeyPress ( Sender :  TObject ;  var  Key :  Char );
begin
   if  not  ( key  in  [ '0' .. '9' , '.' , #8 ])  then  key := #0 ;  //数字删除键
   if  ( key = '.' )  and  ( Pos ( '.' , Edit1 . Text )> 0 )  then  key := #0 ; //只能数字且只能输入
end ;
 
 
 
//按键模拟
按键模拟_注入线程之后国F也可以按键模拟
 
//PostMessage
PostMessage(Edit1.Handle, WM_KEYDOWN, 65, 0);// 模拟在Edit控件中按下a键
PostMessage(Form1.Handle, WM_KEYDOWN, VK_TAB, 0); //模拟在窗体中按下Tab键
//按键模拟 1 2 3 4 5 6
//按键模拟F1 F2 F3 F4 F5 F6
 
 
// 功能模拟发送按键:1~9,F1~F8

procedure SendKey(Str:string);

var

  MyHwnd:HWND;

  KeyValue:integer;

begin

  {功能模拟发送按键:1~9,F1~F8}

    MyHwnd:=FindWindow(nil,'Element Client');

   if Str='1'  then KeyValue:=49;

   if Str='2'  then KeyValue:=50;

   if Str='3'  then KeyValue:=51;

   if Str='4'  then KeyValue:=52;

   if Str='5'  then KeyValue:=53;

   if Str='6'  then KeyValue:=54;

   if Str='7'  then KeyValue:=55;

   if Str='8'  then KeyValue:=56;

   if Str='9'  then KeyValue:=57;

   if Str='F1' then KeyValue:=VK_F1;

   if Str='F2' then KeyValue:=VK_F2;

   if Str='F3' then KeyValue:=VK_F3;

   if Str='F4' then KeyValue:=VK_F4;

   if Str='F5' then KeyValue:=VK_F5;

   if Str='F6' then KeyValue:=VK_F6;

   if Str='F7' then KeyValue:=VK_F7;

   if Str='F8' then KeyValue:=VK_F8;

  sendmessage(MyHwnd,wm_keydown,KeyValue,0);

  sendmessage(MyHwnd,wm_keyup,KeyValue,0);

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

  SendKey('F1');//ComboBox1.text

end;





附件列表

     

    你可能感兴趣的:(线程)