zoukankan      html  css  js  c++  java
  • 按键模拟_注入线程之后国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;





    附件列表

    • 相关阅读:
      Redis源代码分析(十三)--- redis-benchmark性能測试
      kvm中运行kvm
      umount.nfs device busy day virsh extend diskSpace, attachDisk
      ultravnc
      openNebula dubug
      maintenance ShellScripts
      virsh VMI deploy data serial xml
      cloud computing platform,virtual authentication encryption
      基于C 的libvirt 接口调用
      storage theory
    • 原文地址:https://www.cnblogs.com/xe2011/p/2525957.html
    Copyright © 2011-2022 走看看