zoukankan      html  css  js  c++  java
  • 使用SendKeys 将键击和组合键击发送到活动应用程序

    使用 SendKeys 将键击和组合键击发送到活动应用程序。此类无法实例化。若要发送一个键击给某个类并立即继续程序流,请使用 Send。若要等待键击启动的任何进程,请使用 SendWait

    每个键都由一个或多个字符表示。若要指定单个键盘字符,请使用该字符本身。例如,若要表示字母 A,请将字符串“A”传递给方法。若要表示多个字符,请将各个附加字符追加到它之前的字符的后面。若要表示字母 A、B 和 C,请将参数指定为“ABC”。

    加号 (+)、插入符号 (^)、百分号 (%)、波浪号 (~) 以及圆括号 ( ) 对 SendKeys 具有特殊含义。若要指定这些字符中的某个字符,请将其放在大括号 ({}) 内。例如,若要指定加号,请使用“{+}”。若要指定大括号字符,请使用“{{}”和“{}}”。中括号 ([ ]) 对 SendKeys 没有特殊含义,但必须将它们放在大括号内。在其他应用程序中,中括号具有特殊含义,此含义可能会在发生动态数据交换 (DDE) 时起重要作用。

    警告:

    如果应用程序用于键盘各不相同的国际用途,则使用 Send 可能产生不可预知的结果,应避免使用它。

    若要指定在按键(如 Enter 或 Tab)时不显示的字符,以及表示操作而不表示字符的键,请使用下表中的代码:

    代码

    Backspace

    {BACKSPACE}、{BS} 或 {BKSP}

    Break

    {BREAK}

    Caps Lock

    {CAPSLOCK}

    Del 或 Delete

    {DELETE} 或 {DEL}

    向下键

    {DOWN}

    End

    {END}

    Enter

    {ENTER} 或 ~

    Esc

    {ESC}

    Help

    {HELP}

    Home

    {HOME}

    Ins 或 Insert

    {INSERT} 或 {INS}

    向左键

    {LEFT}

    Num Lock

    {NUMLOCK}

    Page Down

    {PGDN}

    Page Up

    {PGUP}

    Print Screen

    {PRTSC}(保留供将来使用)

    向右键

    {RIGHT}

    Scroll Lock

    {SCROLLLOCK}

    Tab

    {TAB} 或 \t

    向上键

    {UP}

    F1

    {F1}

    F2

    {F2}

    F3

    {F3}

    F4

    {F4}

    F5

    {F5}

    F6

    {F6}

    F7

    {F7}

    F8

    {F8}

    F9

    {F9}

    F10

    {F10}

    F11

    {F11}

    F12

    {F12}

    F13

    {F13}

    F14

    {F14}

    F15

    {F15}

    F16

    {F16}

    数字键盘加号

    {ADD}

    数字键盘减号

    {SUBTRACT}

    数字键盘乘号

    {MULTIPLY}

    数字键盘除号

    {DIVIDE}

    若要指定与 Shift、Ctrl 和 Alt 键的任意组合一起使用的键,请在这些键代码之前加上以下一段或多段代码。

    代码

    Shift

    +

    Ctrl

    ^

    Alt

    %

    若要指定在按一些键时应同时按住 Shift、Ctrl 和 Alt 键的任意组合,请将这些键的代码放在括号内。例如,若要指定按 E 和 C 时同时按住 Shift 键,请使用“+(EC)”。若要指定按 E 时应按住 Shift,之后按 C 时不按住 Shift,请使用“+EC”。

    若要指定重复键,请使用格式 {key number}。键和数字之间必须放一空格。例如,{LEFT 42} 表示按向左键 42 次;{h 10} 表示按 H 10 次。

    说明:

    因为没有可用来激活另一个应用程序的托管方法,所以可以在当前应用程序中使用此类,或使用本机 Windows 方法(如 FindWindowSetForegroundWindow)来强制聚焦到其他应用程序上。

    说明:

    已针对 .NET Framework 3.0 更新了 SendKeys 类,以便在 Windows Vista 中运行的应用程序中使用该类。Windows Vista 的增强安全性(称为用户帐户控制或 UAC)可以防止以前的实现按预期工作。

    SendKeys 类易出现计时问题,某些开发人员必须解决这些问题。更新的实现仍易出现计时问题,但它略快,可能需要对解决方法进行更改。SendKeys 类尝试先使用以前的实现,如果失败,则使用新实现。因此,在不同的操作系统上,SendKeys 类的行为可能不同。此外,如果 SendKeys 类使用新实现,则将消息发送到另一进程时,SendWait 方法不会等待处理这些消息。

    如果无论操作系统如何应用程序都依赖一致的行为,则通过在 app.config 文件中添加下列应用程序设置,可以强制 SendKeys 类使用新实现。

    <appSettings>

    <add key="SendKeys" value="SendInput"/>

    </appSettings>

    要强制 SendKeys 类使用以前的实现,请改用值 "JournalHook"

    //SendKeys.Send("%{PRTSC}"); // (Alt + PrtSc) 打印当前活动窗体。


    欢迎加入JAVA技术交流QQ群:179945282

    欢迎加入ASP.NET(C#)交流QQ群:17534377


  • 相关阅读:
    org.springframework.web.servlet.mvc.multiaction.NoSuchRequestHandlingMethodException
    Mybatis分页插件PageHelper使用
    比特大陆发布终端 AI 芯片 端云联手聚焦安防
    大数据相乘
    MyBatis学习 之 二、SQL语句映射文件(1)resultMap
    MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql
    MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql
    MyBatis学习 之 四、MyBatis配置文件
    MyBatis学习 之 四、MyBatis配置文件
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/q149072205/p/2134929.html
Copyright © 2011-2022 走看看