编注:我们会不定期挑选 Matrix 的优质文章,展示来自用户的最真实的体验和观点。 文章代表作者个人观点,少数派仅对标题和排版略作修改。
不知道你是否经历过这样的场景,在使用翻页笔翻页你所要演讲的 PPT 时,电脑某个程序弹了一个窗口,导致 PPT 放映的窗口处于未活动的状态,翻页笔失灵,于是你不得不用鼠标点一下放映窗口;又或者当台上的演讲者拿着翻页笔演讲时,你需要对电脑做一些其他的操作,但是这样会影响台上的人翻页。
有的翻页笔装有驱动程序可以解决这个问题,但问题是这类的翻页笔都比较贵。而在现有硬件基础上,其实有软件解决方案——AutoHotkey。
▍AutoHotkey 如何解决问题?
AutoHotkey (AHK) 是一个免费开源的 Windows 脚本语言工具,主要用于自动化重复性任务、创建自定义快捷键(热键)、模拟鼠标键盘操作,并能处理窗口管理。
我让 AI 写了一个 AutoHotkey 的脚本,功能是捕获翻页笔对应的键盘按键,然后直接发送到相应的进程(PowerPoint 或者 WPS)中,从而能够在任何时候都能进行翻页,即使在放映窗口处于未活动的状态。
▍操作流程
1. 下载安装 AutoHotkey(只有Windows版本)。
链接:https://www.autohotkey.com/
2. 在电脑本地新建一个 demo.ahk(自行命名)文本文档,用记事本编辑。如果是 PowerPoint,则复制粘贴以下代码:
#Requires AutoHotkey v2.0; 获取正在运行的 PowerPoint 应用GetPPT() {try {return ComObjActive("PowerPoint.Application")} catch {return}}; 判断是否正在放映IsSlideShowRunning(ppt) {try {return ppt.SlideShowWindows.Count > 0} catch {return false}}; 下一页PPT_Next() {ppt := GetPPT()if !pptreturnif IsSlideShowRunning(ppt)ppt.SlideShowWindows(1).View.Next()}; 上一页PPT_Prev() {ppt := GetPPT()if !pptreturnif IsSlideShowRunning(ppt)ppt.SlideShowWindows(1).View.Previous()}; —— 绑定翻页键 ——$PgDn::PPT_Next()$PgUp::PPT_Prev()
如果是 WPS,则复制粘贴以下代码:
#Requires AutoHotkey v2.0; 获取正在运行的 WPS 演示应用GetWPS() {try {return ComObjActive("KWPP.Application")} catch {return}}; 获取当前放映窗口GetWPSSlideShowWindow(wps) {try {if wps.SlideShowWindows.Count > 0return wps.SlideShowWindows(1)} catch {return}}; 判断是否正在放映IsSlideShowRunning(wps) {try {return wps.SlideShowWindows.Count > 0} catch {return false}}; 切换到放映窗口ActivateSlideShowWindow(wps) {slideShowWindow := GetWPSSlideShowWindow(wps)if slideShowWindow {; 激活放映窗口slideShowWindow.Activate()}}; 下一页WPS_Next() {wps := GetWPS()if !wpsreturnif IsSlideShowRunning(wps) {ActivateSlideShowWindow(wps) ; 确保窗口被激活wps.SlideShowWindows(1).View.Next()}}; 上一页WPS_Prev() {wps := GetWPS()if !wpsreturnif IsSlideShowRunning(wps) {ActivateSlideShowWindow(wps) ; 确保窗口被激活wps.SlideShowWindows(1).View.Previous()}}; —— 绑定翻页键 ——$PgDn::WPS_Next()$PgUp::WPS_Prev()
3. 测试翻页笔的按键对应键位,可用在线网站测试。
链接:https://www.zfrontier.com/lab/keyboardTester
- 如果是对应键盘的 PageUp 和 PageDown 键位,那么上面的代码不用修改;
- 如果是对应左右方向键位,则需要把最后的两行代码修改替换,用记事本即可编辑。
; —— 绑定翻页键 ——$Right::PPT_Next()$Left::PPT_Prev()
4. 打开一个 PPT 文件,放映,确认翻页笔正常可用。
5. 运行 AutoHotkey,然后双击 demo.ahk,此时任务栏右下角会出现绿色的图标。
6. 让放映窗口处于非活动状态(可按下Win键),翻页笔翻页测试是否能翻页。
7. 设置开机启动,Win + R → 输入 shell:startup → 回车,把 demo.ahk 文件移动/复制到打开的文件夹。
注:我已经上传了 .ahk 文件到 GitHub,不想复制粘贴,可以直接跳转手动下载。
链接:https://github.com/Xpilot-Echo/SlideFree
▍注意事项
添加白名单
部分杀毒软件会对.ahk 文件(特别是对下载的.ahk 文件)进行拦截隔离,需要添加白名单。
保护性视图问题
PowerPoint 会对从网络(浏览器等)下载的 PPT 文件启用的保护模式,打开界面会提示风险「保护性视图」,在此模式下,会影响翻页笔的正常翻页,因为 AutoHotkey 拦截了翻页笔的按键,但是无法发送到 PowerPoint 进程,导致翻页笔「失控」。
解决方案:在确认下载下来的文件是安全的情况下,在提示风险界面点击「启用编辑」,或者在资源管理器中,右键 PPT 文件,选择属性,在选项卡「解除保护」框打勾✔
作者:EchoYu
责编:Lotta
热门跟贴