zoukankan      html  css  js  c++  java
  • C# 发送消息SendKeys、SendMessage、keybd_event的用法

    一、C#中SendKeys的用法

    功能:将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。

    语法: SendKeys.Send(string keys);

         SendKeys.SendWait(string keys);

    说明:

    (1)发送字符串

        SendKeys.SendWait("A"); //发送字母A

       SendKeys.SendWait("ABC"); //发送字符串ABC

        SendKeys.SendWait("输入汉字"); //发送输入汉字

    (2)模拟发送+、^、%、~及圆括号 ( ) ,要将它放在大括号 ({}) 当中。

       SendKeys.SendWait("{+}");  //发送加号

    (3)模拟发送那些不显示的字符,也要将它放在大括号 ({}) 当中。

       SendKeys.SendWait("{Enter}");  //发送回车   

       SendKeys.SendWait("{TAB}");  //发送TAB

       SenKeys.SendWait("{END}"); //发送END
       SenKeys.SendWait("{F5}"); //发送F5

    (4)模拟发送 SHIFT、CTRL 及 ALT 等按键结合的组合键:

    按键 代码
    Shift +
    Ctrl ^
    Alt %
          SenKeys.SendWait("^c"); //发送Ctrl+C ,必须是小写!C#区分大小写的,下同
      SendKeys.SendWait("v"); //发送Ctrl+v 

      SendKeys.SendWait("{A 10}");  //模拟10次按下字母A   

    二、C#中Keybd_event的用法

    语法:

     [DllImport("user32.dll",EntryPoint="keybd_event",SetLastError=true)]
     public static extern void keybd_event(byte bVk,byte bScan,int dwFlags,int dwExtraInfo);

    从上述原型可以看出,Keybd_event()共有四个参数:

    第一个为按键的虚拟键值,建议统一用(byte)Keys.*形式,便于记忆

        例如:A (byte)Keys.A,Tab (byte)Keys.Tab
    第二个参数为扫描码,一般不用设置,用0代替就行;

    第三个参数为选项标志,如果为keydown则置0即可,如果为keyup则设成"KEYEVENTF_KEYUP" 或是 "0x2"或是2,建议用0按下、2弹起简单;

    第四个参数一般也是置0即可。

        keybd_event((byte)Keys.A,0,0,0);  //按下A
        keybd_event((byte)Keys.A,0,2,0);  //弹起A

        keybd_event((byte)Keys.Enter,0,0,0);  //模拟按下回车

        //模拟Ctrl+V:
         //keybd_event((byte)Keys.ControlKey,0,0,0);//按下
          //keybd_event((byte)Keys.V,0,0,0);//按下
          //keybd_event((byte)Keys.V,0,2,0);//弹起
          //keybd_event((byte)Keys.ControlKey,0,2,0);//弹起

        keybd_event((byte)Keys.A,0,0,0);  //模拟按下A
       SenKeys.SendWait("{END}"); //发送END
    ---------------------
    作者:xtfnpgy
    来源:CSDN
    原文:https://blog.csdn.net/xtfnpgy/article/details/40511747
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    Linux上传下载文件(rz/sz)
    注册页面(函数调用,数组,对象,for,innerHTML)
    课程表(点击事件,for)
    winform中固定界面大小的方法
    VS常用快捷键
    Python的标准输出
    Spring注解驱动第二讲--@ComponentScan扫描介绍
    Spring注解驱动第一讲--Spring环境搭建
    通用目标检测
    通用目标检测-发展趋势
  • 原文地址:https://www.cnblogs.com/soundcode/p/10783626.html
Copyright © 2011-2022 走看看