zoukankan      html  css  js  c++  java
  • Mac AppleScript 自动完成按键

    本人用AppleScript成功实现了打开锐捷app,并且在用户验证框输入我的用户密码,然后强制退出锐捷。(至于为什么这么做呢?用校园网的痛苦,一言难尽啊!) 

      

    学习以下内容,首先你要自行百度资料来学习一点内容,学会使用实用工具里面的 脚本编辑器Automator。实用工具,确实很实用啊!

    --脚本完成组合键按下 by Ficow
    tell application "System Events"
        key code 53 using {command down, option down}
    end tell
    
    
    -- --这个符号是注释符号,(**)这个也是注释符号,类似于C语言里面的//和/**/
    -- key code 53的意思按下Esc键,53的含义见下面的列表
    -- using {} 花括号部分按下的按键和前面的按键事件一起作用
    -- command down, option down的含义是按下command和option
    -- 所以这个脚本的作用就是启动强制退出窗口(command+option+Esc)
    
    (*
    apple key code list(后面会用到这个清单!):
    
    0 0x00 ANSI_A
    1 0x01 ANSI_S
    2 0x02 ANSI_D
    3 0x03 ANSI_F
    4 0x04 ANSI_H
    5 0x05 ANSI_G
    6 0x06 ANSI_Z
    7 0x07 ANSI_X
    8 0x08 ANSI_C
    9 0x09 ANSI_V
    10 0x0A ISO_Section
    11 0x0B ANSI_B
    12 0x0C ANSI_Q
    13 0x0D ANSI_W
    14 0x0E ANSI_E
    15 0x0F ANSI_R
    16 0x10 ANSI_Y
    17 0x11 ANSI_T
    18 0x12 ANSI_1
    19 0x13 ANSI_2
    20 0x14 ANSI_3
    21 0x15 ANSI_4
    22 0x16 ANSI_6
    23 0x17 ANSI_5
    24 0x18 ANSI_Equal
    25 0x19 ANSI_9
    26 0x1A ANSI_7
    27 0x1B ANSI_Minus
    28 0x1C ANSI_8
    29 0x1D ANSI_0
    30 0x1E ANSI_RightBracket
    31 0x1F ANSI_O
    32 0x20 ANSI_U
    33 0x21 ANSI_LeftBracket
    34 0x22 ANSI_I
    35 0x23 ANSI_P
    36 0x24 Return
    37 0x25 ANSI_L
    38 0x26 ANSI_J
    39 0x27 ANSI_Quote
    40 0x28 ANSI_K
    41 0x29 ANSI_Semicolon
    42 0x2A ANSI_Backslash
    43 0x2B ANSI_Comma
    44 0x2C ANSI_Slash
    45 0x2D ANSI_N
    46 0x2E ANSI_M
    47 0x2F ANSI_Period
    48 0x30 Tab
    49 0x31 Space
    50 0x32 ANSI_Grave
    51 0x33 Delete
    53 0x35 Escape
    55 0x37 Command
    56 0x38 Shift
    57 0x39 CapsLock
    58 0x3A Option
    59 0x3B Control
    60 0x3C RightShift
    61 0x3D RightOption
    62 0x3E RightControl
    63 0x3F Function
    64 0x40 F17
    65 0x41 ANSI_KeypadDecimal
    67 0x43 ANSI_KeypadMultiply
    69 0x45 ANSI_KeypadPlus
    71 0x47 ANSI_KeypadClear
    72 0x48 VolumeUp
    73 0x49 VolumeDown
    74 0x4A Mute
    75 0x4B ANSI_KeypadDivide
    76 0x4C ANSI_KeypadEnter
    78 0x4E ANSI_KeypadMinus
    79 0x4F F18
    80 0x50 F19
    81 0x51 ANSI_KeypadEquals
    82 0x52 ANSI_Keypad0
    83 0x53 ANSI_Keypad1
    84 0x54 ANSI_Keypad2
    85 0x55 ANSI_Keypad3
    86 0x56 ANSI_Keypad4
    87 0x57 ANSI_Keypad5
    88 0x58 ANSI_Keypad6
    89 0x59 ANSI_Keypad7
    90 0x5A F20
    91 0x5B ANSI_Keypad8
    92 0x5C ANSI_Keypad9
    93 0x5D JIS_Yen
    94 0x5E JIS_Underscore
    95 0x5F JIS_KeypadComma
    96 0x60 F5
    97 0x61 F6
    98 0x62 F7
    99 0x63 F3
    100 0x64 F8
    101 0x65 F9
    102 0x66 JIS_Eisu
    103 0x67 F11
    104 0x68 JIS_Kana
    105 0x69 F13
    106 0x6A F16
    107 0x6B F14
    109 0x6D F10
    111 0x6F F12
    113 0x71 F15
    114 0x72 Help
    115 0x73 Home
    116 0x74 PageUp
    117 0x75 ForwardDelete
    118 0x76 F4
    119 0x77 End
    120 0x78 F2
    121 0x79 PageDown
    122 0x7A F1
    123 0x7B LeftArrow
    124 0x7C RightArrow
    125 0x7D DownArrow
    126 0x7E UpArrow
    *)

    这里附上我自己制作的Automator工作流程:

    首先在Automator,添加工作流程(多次试验之后,我觉得还是工作流程好用一点)。

    打开Automator,新建-工作流程,如图:

    然后,添加启动锐捷的功能(双击开启应用程序,右边就会出现可以配置的功能块):

    启动锐捷后需要输入自己的用户密码,所以紧接着就插入完成按键按下的脚本,完成密码的自动输入:

    your script goes here,好的,就在这下面开始写输入密码的脚本吧:

    on run {input, parameters}
        
        (* Your script goes here *)
    
        delay 1 --延时1S后执行后面的内容
        
        tell application "System Events"
            key code 1 --这里做示范,只输入了小写的s,code编码请参照key code list
            key code 76 --输入了回车,以确认密码输入
        end tell
        
        delay 10 --延时10S,等待锐捷启动并自动登录完毕
        
        return input
    end run

    添加完毕后,你可以点击运行检验一下当前编写的脚本的运行效果是否符合你的要求,

    在运行之前先检查一下语法有没有错误,以防止运行发生意外。

    按图中标注的顺序点击按钮即可:

    接下来,添加下一个脚本,输入终结锐捷的脚本代码:

    on run {input, parameters}
        
        (* Your script goes here *)
        
        beep --让Mac发出声音
        tell application "System Events" 
            
            key code 53 using {command down, option down} --按下打开强制退出框的组合键
            delay 1
            key code 76 --确定选择
            delay 1
            key code 76 --确定退出锐捷
            
        end tell --tell和end tell需要配对使用
        
        return input
    end run

    最后,把这个工作流程保存起来。需要用的时候,双击打开工作流程,然后点击Automator里的运行即可。

    Automator功能很棒的,有些人甚至它用来完成图片的批量格式转换等更实用的功能!

    百度Automator,更多惊喜等着你哦!

    可参考资料:

    http://www.guokr.com/blog/792617/

    http://apple.stackexchange.com/questions/36943/how-do-i-automate-a-key-press-in-applescript

    原创文章,转载请注明出处,谢谢!

  • 相关阅读:
    触发器和存储过程
    转 “automation服务器不能创建对象”的问题的解决方案总结大全
    纯JS幻动片
    SQLServer2000、2005/2008 生成数据字典SQL语句
    根据DEMO做的第一个WCF出现的问题
    让文本框显示行号,兼容ie、火狐
    水晶报表截取指定字符串长度
    20100831 只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态
    分页控件
    附加数据库函数
  • 原文地址:https://www.cnblogs.com/ficow/p/5574882.html
Copyright © 2011-2022 走看看