zoukankan      html  css  js  c++  java
  • AutoHotKey入门

    首先它要编译.ahk后缀的脚本才能执行。脚本里再写键盘触发监听之类的逻辑。

    所以并非单单只是热键启动那么简单,可以组合出复杂的功能,甚至支持正则表达式 

    理论上扩展性比按键精灵差,易用性大大优于按键精灵。作为一个程序员用按键精灵显然有点不合适:-)

    不过ahk对中文支持不是很好,有些文字搜不到

    似乎没有脚本编辑器,不过配合notepad++也不差。

    双击脚本文件即可加载,如果要启动就加载,那就放到启动文件夹下

    注:当你控制ATK点一下屏幕上任意面板之后,ATK取到的坐标事实上是面板的本地坐标。

    编写代码时用ATK自带的windows spy来取本地坐标是多少非常方便。右键atk的图标就可以找到这个功能

    1.Hellow World

    试着用记事本打开一个.txt文档

    #space::Run www.baidu.com


    加载脚本,按win+space即可出现浏览器打开百度网址。

    :: 是启动热键

    常用命令

    win  #

    ctrl ^

    alt !

    Shift:+

    `(1旁边那个按键) ``

    tab: Send {Tab}

    tab5次:Send {Tab 5}

    鼠标中键:MButton

    模拟按键按下2 :send, 2 

    发送输入:SendInput {Alt Down}{F4}{Alt Up}

    执行网页或exe程序: Run,D:qqsetup.exe 

    延迟1秒:sleep 1000

    取剪切板 %clipboard%,用法:Run http://www.google.com/search?q=%clipboard%

    系统的某些特殊文件夹被定义了相应的CLSID(请查看帮助文档),我们可利用它来打开相应的文件夹,比如打开回收站:
    如:Run ::{645ff040-5081-101b -9f 08-00aa 002f 954e}

    如果需要添加参数,只需直接在程序或文档的名称后面加入即可: 
    Run, %comspec% /k dir, C:My Documents 

    热字符串,很cool,输入缩写跳出全称,类似vs的snip : ::wjbk::维基百科,自由的百科全书

    结束符
    在默认状态下,输入完缩写还要按一下回车,才能帮你输入全部字符串。但也可以免去,不过方法我忘了,得百度
    结束符默认是指这些字符:-()[]{}':;"/\,.?!`n `t (注意:`n代表回车,`t代表Tab,在`n和 `t之间还有一个空格)。您可以仿照下面的语句来更改这一设置:
    #Hotstring EndChars -()[]{}:;'"/\,.?!`n `t ;右边的所有字符串都被定义为结束符

    等待窗口系列命令:

    WinWait [, 窗口标题, 窗口文本, 超时时间, 排除标题, 排除文本]
    WinWait 的作用是在目标窗口出现之前不再执行后面的所有语句。

    消息框:MsgBox [, 选项, 对话框标题, 对话框信息文本, 超时时间] 

    示例

    MsgBox, 0, 错误, 无法进行指定操作 ;出现错误则提示用户 
    MsgBox, 4, 修改确认, 确认删除指定注册表项目? 
      IfMsgBox, Yes 
                RegDelete, HKEY_LOCAL_MACHINE, SOFTWARE	est, 
      IfMsgBox, No 
        Return   

    变量和条件判断

    MyVar1 = 123 
    MyVar2 = my string 
    要对某个变量和数字/字串进行比较,请参考下面的例子: 
    if MyVar2 = my string 
    { 
    MsgBox MyVar2 含有字串“my string” 
    } 
    if MyVar1 >= 100 
    { 
    MsgBox MyVar1 含有的数值是 %MyVar1%,比100还大 
    } 

    实现类似for循环的功能

    i=0
    loop 3
    {
        Msgbox %i%
        i++
        Sleep 200
    }

    获取系统时间

    FormatTime, now_date, %A_Now%, yyyy/MM/dd
    Send, % now_date

    直接获取时间用:

    %A_Now%

    左键点击 MouseClick, left, 600, 10

    右键点击 MouseClick, right, 600, 10

    注意,后面两个参数坐标的0,0点是窗口的0,0点

    按下 Send, {LButton Down}

    弹起 Send, {LButton Up}

    hold住某个按键一会

    #space::
    Send {`` down}
    Sleep 200
    Send {`` up}


     

    鼠标移动至 moveto 166 419

    循环

    Loop 3
    {
     ...
    }

    等待按键输入 KeyWait, LButton, D

    关闭进程: ProcessClose("关闭进程名")

    tips

    如果要对原始符号转义前面加上{raw}

    :: 启动热键,例:#n:: 热键就是Win+N

    网上有份更全的对照表LINK

  • 相关阅读:
    跑酷游戏的一些bug总结(滥用FixedUpdate的坑)
    Unity在编辑器状态下清空控制台信息
    Unity脚本在层级面板中的执行顺序测试3
    IronPython使用
    RSA加密的测试demo
    常用加密算法学习
    c#读写ini文件
    Jrebel激活方法(转)
    ThreadLocal Memory Leak in Java web application
    Java Thread Local – How to use and code sample(转)
  • 原文地址:https://www.cnblogs.com/hont/p/4451453.html
Copyright © 2011-2022 走看看