• sendkeys键码表及定义方法


    易语言的定义方法:

    .版本 2

    .子程序 发送字符串, , 公开, sendkeys 将一个或多个按键消息发送到活动窗口,就如同用键盘进行输入一样 (无返回值)
    .参数 文本, 文本型, , 字符串表达式,指定要发送的按键消息(详情见百度sendkeys词条)
    .参数 等待, 逻辑型, 可空, 指定等待方式的值  默认为假:按键发送出去立刻返回  真:按键消息在返回到过程之前加以处理
    .局部变量 bhdrtvh, 对象

    bhdrtvh.创建 (“WScript.Shell”, )
    bhdrtvh.对象型方法 (“SendKeys”, 文本, 等待)

    键码表:  

          SHIFT +
      CTRL ^
      ALT %
      1)为了指定单一键盘字符,必须按字符本身的键。例如,为了表示字母 A,可以用 "A" 作为 string。为了表示多个字符,就必须在字符后面直接加上另一个字符。例如,要表示 A、B 及 C,可用 "ABC" 作为 string。
      2)对 SendKeys 来说,加号+ 、插入符^ 、百分号% 、上划线~ 及圆括号( ) 都具有特殊意义。为了指定上述任何一个字符,要将它放在大括号{}当中。例如,要指定正号,可用 {+} 表示。为了指定大括号字符,请使用 {{} 及 {}}。方括号 [ ] 对 SendKeys 来说并不具有特殊意义,但必须将它们放在大括号中。在其它应用程序中,方括号有特殊意义,在出现动态数据交换 (DDE) 的时候,它可能具有重要意义。
      3)为了在按下按键时指定那些不显示的字符,例如 ENTER 或 TAB 以及那些表示动作而非字符的按键,请使用下列代码:
      按键 代码
      BACKSPACE {BACKSPACE}, {BS}或{BKSP}
      BREAK {BREAK}
      CAPS LOCK {CAPSLOCK}
      DEL or DELETE {DELETE} 或 {DEL}
      ENTER {ENTER}或 ~
      ESC {ESC}
      NUM LOCK {NUMLOCK}
      SCROLL LOCK {SCROLLLOCK}
      UP ARROW {UP}
      DOWN ARROW(下箭头) {DOWN}
      LEFT ARROW {LEFT}
      RIGHT ARROW {RIGHT}
      END {END}
      HOME {HOME}
      INS or INSERT {INSERT} 或 {INS}
      PAGE DOWN {PGDN}
      PAGE UP {PGUP}
      PRINT SCREEN {PRTSC}
      WIN ^{ESC}
      TAB {TAB}
      HELP {HELP}
      F1 {F1}
      F2 {F2}
      F3 {F3}
      F4 {F4}
      F5 {F5}
      F6 {F6}
      F7 {F7}
      F8 {F8}
      F9 {F9}
      F10 {F10}
      F11 {F11}
      F12 {F12}
      4)为了指定那些与 SHIFT、CTRL 及 ALT 等按键结合的组合键,可在这些按键码的前面放置一个或多个代码,这些代码列举如下:
      键 代码
      SHIFT +
      CTRL ^
      ALT %
      5)为了说明在按下其它按键时应同时按下 SHIFT、CTRL、及 ALT 的任意组合键,请把那些按键的码放在括号当中。例如,为了说明按下 E 与 C 的时候同时按下 SHIFT 键,请使用 "+(EC)"。为了说明在按下 E 的时候同时按下 SHIFT 键,但接着按 C 而不按 SHIFT,则使用 "+EC"。
      6)为了指定重复键,使用 {key number} 的形式。必须在 key 与 number 之间放置一个空格。例如,{LEFT 42} 意指 42 次按下 LEFT ARROW 键;{h 10} 则是指 10 次按下 H 键。注意 不能用 SendKeys 将按键消息发送到这样一个应用程序——这个应用程序并没有被设计成在 Microsoft Windows 中运行。
      注意:Sendkeys 也无法将 PRINT SCREEN 按键发送到任何应用程序。


    当实现按二次ctrl+c时,把文本放到数据库时遇到了第一个问题:
    调用系统的RegisterHotkey函数注册全局热键,会使原来的Ctrl+c的复制功能失效
    于是想到第二个方法,用系统WindowFromPoint获取鼠标所在窗口的句柄,再用sendMessage函数向这个句柄发送WM_COPY命令实现复制命令,遇到了第二个问题,在文本文件中,功能好用,到IE浏览器就不行了。
    于是想到了第三个方法,向IE发送ctrl+c的模拟键盘命令,使用C#的SendKeys.Send(string s);函数,这个用的SendKeys.Send("^C"),可是还是不行,在文本文件中,功能好用,到IE浏览器就不行了。
    怪了,又尝试SendKeys.Send("asdfasdf"),在IE的文本框中好用,可是SendKeys.Send("^C")就不行,怒了尝试用SendKeys.Send("%{F4}"),也是好用的。于是在网上baidu了n久看到了一片文章,SendKeys.Send(string s)是不是区分大小写啊,于是尝试SendKeys.Send("^c"),功能实现。

  • 相关阅读:
    DevExpress中设置PanelControl背景的方法
    ArcEngine选中面要素样式修改
    DEV winform treelist设置背景图像
    React-Native运行知乎日报遇到的问题
    winform程序自动升级
    jquery图片轮播效果(unslider)
    Orchard搜索与索引
    网络版会飞的小鸟
    jQuery event的复制粘贴的坑
    记一次有趣的互联网事件及console.log~
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/14521796.html
Copyright © 2020-2023  润新知