AutoHotKey SendText在Firefox版Google Sheets中无法正常输入的问题求助
解决Firefox中Google Sheets的AHK剪贴板粘贴异常问题
针对你遇到的问题——在Firefox的Google Sheets空单元格中首次触发AHK宏仅激活单元格、无法直接粘贴剪贴板内容,以下是几种可行的解决思路:
1. 强制激活单元格编辑模式后再发送文本
Google Sheets的「选中单元格」和「编辑单元格」是两个独立状态,首次触发宏时,AHK的SendText会被Sheets的状态拦截,仅完成激活操作。可以在发送剪贴板内容前,先模拟按下F2(Google Sheets中激活单元格编辑的快捷键):
^+!v:: ; 先触发单元格编辑模式 Send "{F2}" Sleep 50 ; 给Firefox和Sheets预留响应时间,避免操作不连贯 SendText A_Clipboard return
如果F2在你的环境中不生效,也可以替换为Send "{Enter}",效果类似。
2. 针对Google Sheets窗口做针对性处理
如果不想全局修改宏,可以只在Firefox的Google Sheets窗口中启用上述逻辑,避免影响其他场景:
^+!v:: ; 判断当前活动窗口是否为Firefox中的Google Sheets if WinActive("ahk_exe firefox.exe") && InStr(WinGetTitle("A"), "Google Sheets") { Send "{F2}" Sleep 50 } SendText A_Clipboard return
3. 替换SendText为SendRaw(备选方案)
部分情况下,SendText的文本处理逻辑可能和Sheets的编辑状态兼容不佳,可以尝试改用SendRaw直接发送原始剪贴板内容:
^+!v:: if WinActive("ahk_exe firefox.exe") && InStr(WinGetTitle("A"), "Google Sheets") { Send "{F2}" Sleep 50 } SendRaw A_Clipboard return
问题根源说明
Google Sheets存在「单元格选中」和「单元格编辑」的状态区分,当选中空单元格时,系统并未进入编辑模式,此时AHK发送的文本会被Sheets的前端逻辑拦截,仅触发激活编辑的动作;第二次触发时,单元格已处于编辑模式,文本即可正常输入。Google Docs无此状态区分,因此宏可正常工作。
内容的提问来源于stack exchange,提问作者Michael Kohne
相关产品推荐
相关产品推荐

