同感,我的键盘快捷键多的都没法落脚了!!
LCtrl、LWin和LAlt单键双键的高辨识组合有14个,你们都用完了?所以你们是专业人士,我等是小白啊。
我等小白,只知道Ctrl+C和Ctrl+V这类固定的热的发冷的键,别的甚至连Win键也用不着。不过,把热键用完的人群占比能有0.1%吗?软件开发是面对那99.9%小白,还是这0.1%的专业人士?
我在弄一个GdCopyTool取词工具,正是考虑了小白的需求,弄出来极好用(最近两天突然来了灵感),如果最近没有类似的出来,估计我这套就很可能风靡一时,产生数千万拷贝。就是我在代码里写了讨伐獠的檄文,到时候会不会闹笑话,产生大动静?哈哈
我说话是和他说的,又不是和你,你这又何必?
我说话毫无讽刺之意,我本人确实是小白,对于程序,几乎一窍不通,编程是一边学,一边看。和你们这些人的水平,没法比,这是实情。
我不希望和人发生冲突,如果您误会了,说声抱歉。
互联网的精神是共享精神,您编的我可以拿去,我编的您也可以拿去,中间有任何误会,请相互谅解。这个论坛,我不希望像那个论坛一样。那就太令人失望了。
@Vim 双击取词有时候不灵敏,三次成功一次,你看下代码
; 双击鼠标左键取词
else if (A_priorHotKey = “~LButton” and A_TimeSincePriorHotkey < 450){
oldClipboard := Clipboard
gosub, GoldenDictCopy
}
return
#If
GoldenDictCopy:
Send ^c
Sleep 200
if (oldClipboard == Clipboard) {
return
}
这下面的是我以前用别人的代码只能双击单独取词,取词成功率是90%
~LButton::
Loop {
LButtonDown := GetKeyState(“LButton”,“P”)
If (!LButtonDown)
Break
}
WaitTime:=DllCall(“GetDoubleClickTime”)/4000
KeyWait, LButton, D T%WaitTime%
If errorlevel=0
GoSub, Routine
Return
Routine:
{
ifwinactive ahk_class CabinetWClass
{
return
}
clipboard =
send ,^c
ClipWait,1
StringLen, cliplen, clipboard
if cliplen > 20
{
;避免不是英文單字的東西送到GoldenDict去翻譯。
return
}
if cliplen < 2
{
;避免不是英文單字的東西送到GoldenDict去翻譯。
return
}
; send,{Ctrl down}cc{Ctrl up} 可用這行,也可用下行
run “C:\Program Files\GoldenDict++OCR-2A30-Qt-5.9.9-msvc-16.9.6-x64-20210607\GoldenDict.exe” %clipboard%
}
return
1、我这里测试都是可以的,详看下图演示。
2、是否有可能你查询的词典太多或太重,以致加载比较慢造成?我通常会建立一个简明的群组用于这种弹窗查询。
3、AHK在不同软硬件环境下的表现确实有些不可预测,可能需要根据实际情形微调,我这里只能根据我自己的条件尽量兼容。



请查看下我录的屏,双击取词成功率不高,另激活双击取词,会激活total commander的按名称自动搜索文件夹功能
建议在网页、pdf阅读器之类的环境下使用,在total commander环境中,就禁用这个功能(再次Ctrl+Alt+I)。确实有改进空间,可以设置黑白名单之类,但又增加了复杂性,还不如保持程序的简单性,按需“开关”这些功能。我做这样的封装,目的就是需要时快速启用、不需要时快速关闭。
我看你的截图,感觉是:你双击不同词汇的切换速度太快,而电脑打开GoldenDict太慢,跟不上你的手速,要么电脑硬件不够快,要么软件GoldenDict装载的词典太多或太重影响速度。
请禁用双击取词功能,仅使用GoldenDict原生的Ctrl+C+C,看看是否如你所愿?
AHK仅仅是模拟这个过程而已。
不是我电脑速度的问题,我还是用我之前的代码,你这个代码,双击有时候操作文件夹时会误操作复制!
深表感谢!
你不用不代表别人不用,
pda早期的ahk有检查当前窗口的命令,可以参考。
[9.15]GoldenDict & 欧路 取词完美版(AHK) - GoldenDict - 掌上百科 - PDAWIKI - Powered by Discuz!
quci.zip (1.4 KB)
if(WinActive("Chrome") != win and WinActive("Firefox") != win and WinActive("Anki") != win and WinActive("编辑当前") != win and WinActive("浏览器") != win and WinActive("添加") != win and WinActive("GoldenDict") != win and WinActive("Aboboo") != win and WinActive("Acrobat") != win and WinActive("Word") != win){ ;判断当前所处的软件窗口
return
}
特地感谢,只要能选取文本的,GoldenDict的快捷键好用;但对于图片或者图片类的pdf文件,这个工具才是利器!
发现了更好的方法:
-
背景:之前采用 Capture2Text.exe,会导致 OCR 取词和鼠标取词 两者不可同时使用,必须先切换到其中一个状态下,然后才能进行取词查询,这造成了复杂度。
-
新方法:舍弃 Capture2Text.exe,直接采用 capture + OCR 两个步骤来替代,Capture 可以用任意喜欢的软件完成,OCR也可以用任意喜欢软件完成,AHK 桥接它们。好处是,OCR 取词 和 鼠标取词 完全不冲突,不必切换状态,复杂度急剧下降,任意时刻均可一键启用 OCR取词或鼠标取词,而且OCR识别效果随着你使用现代的 OCR 引擎也会更好,用户体验直接拉满。
大家可以自行挑选喜欢的截图工具和 OCR 工具,让 AI 帮你缝合编写 AHK。
我的方案供参考,既可以完全使用Windows自带工具(极其轻量),也可以加入你喜欢的工具:
[Capture]
; 引擎优先级链:Primary|Fallback1|Fallback2|…
; 可用引擎: FSCapture, WinSnip
Engines=FSCapture|WinSnip[OCR]
; 引擎优先级链:Primary|Fallback1|Fallback2|…
; 可用引擎: RapidOCR, Windows
Engines=RapidOCR|Windows
太抽象了,有谁能讲详细点吗?
pixpin这个常用
你只要把主要思路告诉 AI,AI 自然就知道如何处理了。
我没直接分享主要是因为:
- 我自己使用的版本已经全面升级到 AHK 2.x,并且整合到综合的AHK系统中,单独拆出来还得费一阵。
- 截图和OCR的引擎组合,每个人偏好不同,即使分享了,最多也就是个人偏好。
谢谢分享,已经在AI的帮助下弄好了。感谢!

