• 按键模拟_注入线程之后国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;
     
     
     
    //按键模拟
     
    //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;





    附件列表

    • 相关阅读:
      int (*p)[10] 与*p[10]的区别
      运算顺序
      关于linux开机进入grub问题的解决方法
      对于特殊字符串的处理方法
      学习进度条
      阅读《实例化需求》4-6章有感
      学习进度条
      阅读《实例化需求》1-3章有感
      问题账户需求分析
      2016年秋季个人阅读计划
    • 原文地址:https://www.cnblogs.com/xe2011/p/2525957.html
    Copyright © 2020-2023  润新知