zoukankan      html  css  js  c++  java
  • 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"),功能实现。

  • 相关阅读:
    python 并发编程 多线程 event
    python 并发编程 多线程 定时器
    python 并发编程 多线程 信号量
    linux top 查看CPU命令
    python 并发编程 多线程 GIL与多线程
    python 并发编程 多线程 死锁现象与递归锁
    python 并发编程 多线程 GIL与Lock
    python GIL全局解释器锁与互斥锁 目录
    python 并发编程 多线程 GIL全局解释器锁基本概念
    执行python程序 出现三部曲
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/14521796.html
Copyright © 2011-2022 走看看