然而,在阅读了官方文件之后,我在心里给MMP打了电话
以下是个人经历,缺点可以评论
我将慢慢改进这篇文章
我会慢慢完善这篇文章
首先看一下它有多少东西
[‘TRAYTIP_ERROR’,
‘TRAYTIP_INFO’,
‘TRAYTIP_WARNING’,
‘__class__’,
‘__delattr__’,
‘__dict__’,
‘__dir__’,
‘__doc__’,
‘__eq__’,
‘__format__’,
‘__ge__’,
‘__getattribute__’,
‘__gt__’,
‘__hash__’,
‘__init__’,
‘__init_subclass__’,
‘__le__’,
‘__lt__’,
‘__module__’,
‘__ne__’,
‘__new__’,
‘__reduce__’,
‘__reduce_ex__’,
‘__repr__’,
‘__setattr__’,
‘__sizeof__’,
‘__str__’,
‘__subclasshook__’,
‘__weakref__’,
‘_a_run_script’,
‘_all_window_ids’,
‘_all_window_ids_’,
‘_click’,
‘_directives’,
‘_image_search’,
‘_key_state’,
‘_key_wait’,
‘_mouse_drag’,
‘_mouse_move’,
‘_mouse_position’,
‘_mouse_speed’,
‘_pixel_get_color’,
‘_pixel_search’,
‘_render_template’,
‘_run_script’,
‘_run_template’,
‘_send’,
‘_send_event’,
‘_send_input’,
‘_send_play’,
‘_set_capslock_state’,
‘_show_traytip’,
‘_win_get’,
‘_win_set’,
‘a_run_script’,
‘active_window’,
‘click’,
‘delete’,
‘double_click’,
‘env’,
‘executable_path’,
‘find_window’,
‘find_window_by_class’,
‘find_window_by_text’,
‘find_window_by_title’,
‘find_windows’,
‘find_windows_by_class’,
‘find_windows_by_text’,
‘find_windows_by_title’,
‘get_active_window’,
‘get_mouse_position’,
‘get_volume’,
‘hotkey’,
‘image_search’,
‘key_down’,
‘key_press’,
‘key_release’,
‘key_state’,
‘key_up’,
‘key_wait’,
‘mode’,
‘mouse_drag’,
‘mouse_move’,
‘mouse_position’,
‘mouse_speed’,
‘mouse_wheel’,
‘pixel_get_color’,
‘pixel_search’,
‘read’,
‘reg_delete’,
‘reg_loop’,
‘reg_read’,
‘reg_set_view’,
‘reg_write’,
‘render_template’,
‘right_click’,
‘run_script’,
‘send’,
‘send_event’,
‘send_input’,
‘send_play’,
‘send_raw’,
‘set_capslock_state’,
‘set_view’,
‘set_volume’,
‘show_error_traytip’,
‘show_info_traytip’,
‘show_tooltip’,
‘show_warning_traytip’,
‘sound_beep’,
‘sound_get’,
‘sound_play’,
‘sound_set’,
‘type’,
‘wheel_down’,
‘wheel_up’,
‘win_get’,
‘win_set’,
‘window_encoding’,
‘windows’,
‘write’]
接下来我会以首字母排序一个一个介绍ahk的方法
方法:ahk.a_run_script()
解释:ahk.run_script()的异步版本
属性:ahk.active_window
解释:获取当前活动窗口
例子:
方法:ahk.click()
解释:点击鼠标
例子:
方法:ahk.delete()
解释:即将弃用,被reg_delete()替代
方法:ahk.double_click()
解释:同ahk.click(),只是设置了n=2
属性:ahk.env
解释:应该是查看环境的,print(ahk.env)只会出个地址,
dir(ahk.env)才会出现类似变量的东西
属性:ahk.executable_path
解释:autohotkey.exe的路径
例子:
方法:ahk.find_window()
解释:返回发现的第一个窗口的ahk_id,根据ahk_id可以指定操作的窗口
关于window对象,可以用dir()查看window对象的可用方法和属性
例子:
方法:ahk.find_window_by_class()
解释:根据classname找到窗口的ahk_id,注意传参的形式
例子:
方法:ahk.find_window_by_text()
解释:根据text找到窗口的ahk_id,注意传参的形式
例子:
方法:ahk.find_window_by_title()
解释:根据title找到窗口的ahk_id,注意传参的形式
例子:
方法:ahk.find_windows()
解释:找到所有窗口的ahk_id,注意返回的对象是个迭代器,并不是list
例子:
方法:ahk.find_windows_by_class()
解释:根据classname找到窗口的ahk_id,注意返回的对象是个迭代器,并不是list
例子:
方法:ahk.find_windows_by_text()
解释:根据text找到窗口的ahk_id,注意返回的对象是个迭代器,并不是list
例子:
方法:ahk.find_windows_by_title()
解释:根据title找到窗口的ahk_id,注意返回的对象是个迭代器,并不是list
例子:
方法:ahk.get_active_window()
解释:获取活动窗口,就是你现在正在操作的窗口
例子:
方法:ahk.get_mouse_position()
解释:获取鼠标当前位置
例子:
方法:ahk.get_volume()
解释:根据device_number获取音量,我自己是device_number=3才获取到音量,但是我通过ahk.set_volume()来改变音量,并没有发现哪里的声音有变化
例子:
方法:ahk.hotkey()
解释:以下面这个例子说明,热键是win+n,脚本是运行记事本,当执行完start()后,右下角会出现一个H的图标,就是一个autohotkey的程序,程序的功能就是按下win+n可以运行记事本
例子:
方法:ahk.image_search()
解释:查找图片,能找到就返回图片左上角的坐标,不能找到就是None
例子:
方法:ahk.key_down()
解释:官方说法按下一个键不松开,但是经过我测试它还是松开了
例子:
方法:ahk.key_press()
解释:按下一个键后松开
例子:
方法:ahk.key_release()
解释:松开一个键,但是如果ahk.key_down()会自动松开的话,这个方法就没有意义了
方法:ahk.key_state()
解释:获取一个键的状态,True是按下的状态,False是松开的状态
方法:ahk.key_up()
解释:同ahk.key_release()
方法:ahk.key_wait()
解释:如下,在三秒内等待a按下,如果超过三秒则抛出超时异常,如果三秒内a被按下,则返回None
例子:
属性:ahk.mode
解释:获取当前模式,screen就是作用于整个屏幕
例子:
方法:ahk.mouse_drag()
解释:from_position是起始位置,speed是拖动的速度,button是鼠标按键
例子:
方法:ahk.mouse_move()
解释:移动鼠标
例子:
属性:ahk.mouse_position
解释:获取当前鼠标的坐标
属性:ahk.mouse_speed
解释:获取当前鼠标的移动速度
方法:ahk.mouse_wheel()
解释:滚动鼠标滑轮
例子:
方法:ahk.pixel_get_color()
解释:获取某个像素的颜色,ahk.pixel_get_color(x,y)差不多就够用了
coord_mode=’Screen’,表示作用于整个屏幕
alt=True,当正常方法为特定类型的窗口产生无效或不准确的颜色时,应使用该方法
slow=True,更精确,耗时更长
例子:
方法:ahk.pixel_search()
解释:搜索具有某种颜色的像素
color,十六进制的rgb,
upper_bound,限定搜索范围的左上角,
lower_bound,限定搜索范围的右下角,
variation,一个介于 0 和 255 (包含的) 之间的数字,假如你设置的color为40,variation为2,说明你要找的颜色范围在38~42
例子:
方法:ahk.read()
解释:即将被废弃,被ahk.reg_read()替代
方法:ahk.reg_delete()
解释:删除注册表键值对
参数:key_name和value_name
方法:ahk.reg_loop()
解释:遍历子健
方法:ahk.reg_read()
解释:根据键读值
方法:ahk.reg_set_view()
解释:指定 32 以 32 位程序的方式来查看注册表, 而 64 以 64 位程序的方式浏览注册表
方法:ahk.reg_write()
解释:根据键写值
方法:ahk.render_template()
解释:加载模板,返回文本内容
例子:
方法:ahk.right_click()
解释:单纯的右击鼠标
方法:ahk.run_script()
解释:执行脚本,参数是autohotkey语法的字符串
例子:
方法:ahk.send()
解释:发送键盘击键
可以设置参数raw=True,那就相当于ahk.send_raw()了
可以设置参数delay=1000,就是设置击键间隔为1秒
例子:
方法:ahk.send_event()
解释:同上,不过不能设置raw参数
方法:ahk.send_input()
解释:击键最快,无raw参数和delay参数
方法:ahk.send_play()
解释:可以让热字串运行在更大范围的游戏中
参数只有一个字符串
方法:ahk.send_raw()
解释:见ahk.send()
方法:ahk.set_capslock_state()
解释:设置大写锁的状态
例子:
方法:ahk.set_view()
解释:已被ahk.reg_set_view()代替
方法:ahk.set_volume()
解释:如下,给设备id为1的设备,设置音量为100
ahk.set_volume(100, device_number=1)
方法:ahk.show_error_traytip()
解释:右下角弹出一个提示窗口
可选参数,second=5表示5秒后消失
可选参数,slient=True表示弹出窗口没有声音
可选参数,large_icon=True表示大图标
例子:
方法:ahk.show_info_traytip()
解释:同上
例子:
方法:ahk.show_tooltip()
解释:
参数text,显示的字符串
参数second,多少秒后消失
参数x,活动窗口的x坐标
参数y,活动窗口的y坐标
参数id,范围是[1,20],至今不知道有卵用
例子:
方法:ahk.show_warning_traytip()
解释:右下角弹出一个提示窗口
可选参数,second=5表示5秒后消失
可选参数,slient=True表示弹出窗口没有声音
可选参数,large_icon=True表示大图标
例子:
方法:ahk.sound_beep(frequency=523, duration=150)
解释:发出bb的声音,frequency频率,duration持续时间
方法:ahk.sound_get()
解释:官方文档,看不懂,直接贴出来了
ComponentType,如果省略或为空, 则它默认为单词 MASTER. 否则, 它可以为下列单词的其中一个: MASTER(与 SPEAKERS
含义相同), DIGITAL, LINE, MICROPHONE, SYNTH, CD, TELEPHONE, PCSPEAKER, WAVE,
AUX, ANALOG, HEADPHONES 或 N/A. 如果音频设备缺少指定的 组件类型, 则 ErrorLevel 会表明此问题.
在某些混音器中标为 Auxiliary 的组件可能需要作为 ANALOG 而不是 AUX 进行访问.
如果一个设备含有同种 组件类型 的多个实例(例如两个 LINE 类型), 那么通常首个包含播放设置, 第二个包含录制设置. 要访问首个实例外的其他实例, 请在此参数后加上冒号和数字. 例如: 表示 ANALog 组件的第二个实例.
ControlType,如果省略或为空, 则它默认为 VOLUME. 否则, 它可以为
例子:
方法:ahk.sound_play()
解释:播放,参数filename,给个路径
方法:ahk.sound_set()
解释:设置音量
value和device_number是必须的
下面那俩可选的,不填即是默认
例子:
方法:ahk.type()
解释:同ahk.send_input()
方法:ahk.wheel_down()
解释:无参数,滚轮下滑
方法:ahk.wheel_up()
解释:无参数,滚轮上滑
方法:ahk.win_get()
解释: 参数有下面四个,可以任选作为自己获取窗口的条件
title=”,
text=”,
exclude_title=”,
exclude_text=”,
例子:
方法:ahk.win_set()
解释:根据代码提示,只有一个subcommand参数
然后看看代码
再去翻翻autohotkey的WinSet文档
淦,还是不知道怎么传参
然后去查看window.py的时候发现
window对象可以调用这些方法来设置窗口
属性:ahk.window_encoding
例子:
方法:ahk.windows()
解释:获取所有ahk_id
例子:
方法:ahk.write()
解释:已被ahk.reg_write()取代
补充一个根据id获取window对象