Python AHK库使用文档

然而,在阅读了官方文件之后,我在心里给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对象

资源下载: