GoldenDictOCR ——给GoldenDict添加OCR取词和鼠标取词功能

同感,我的键盘快捷键多的都没法落脚了!!

LCtrl、LWin和LAlt单键双键的高辨识组合有14个,你们都用完了?所以你们是专业人士,我等是小白啊。

我等小白,只知道Ctrl+C和Ctrl+V这类固定的热的发冷的键,别的甚至连Win键也用不着。不过,把热键用完的人群占比能有0.1%吗?软件开发是面对那99.9%小白,还是这0.1%的专业人士?

我在弄一个GdCopyTool取词工具,正是考虑了小白的需求,弄出来极好用(最近两天突然来了灵感),如果最近没有类似的出来,估计我这套就很可能风靡一时,产生数千万拷贝。就是我在代码里写了讨伐獠的檄文,到时候会不会闹笑话,产生大动静?哈哈

1 个赞

我说话是和他说的,又不是和你,你这又何必?

我说话毫无讽刺之意,我本人确实是小白,对于程序,几乎一窍不通,编程是一边学,一边看。和你们这些人的水平,没法比,这是实情。

我不希望和人发生冲突,如果您误会了,说声抱歉。

互联网的精神是共享精神,您编的我可以拿去,我编的您也可以拿去,中间有任何误会,请相互谅解。这个论坛,我不希望像那个论坛一样。那就太令人失望了。

“nonwill” was exposed on Wikipedia :joy::

@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 个赞

1、我这里测试都是可以的,详看下图演示。
2、是否有可能你查询的词典太多或太重,以致加载比较慢造成?我通常会建立一个简明的群组用于这种弹窗查询。
3、AHK在不同软硬件环境下的表现确实有些不可预测,可能需要根据实际情形微调,我这里只能根据我自己的条件尽量兼容。

DoubleClickDemo

1 个赞

GIF 2022-3-1 20-28-42
GIF 2022-3-1 20-28-42

请查看下我录的屏,双击取词成功率不高,另激活双击取词,会激活total commander的按名称自动搜索文件夹功能

建议在网页、pdf阅读器之类的环境下使用,在total commander环境中,就禁用这个功能(再次Ctrl+Alt+I)。确实有改进空间,可以设置黑白名单之类,但又增加了复杂性,还不如保持程序的简单性,按需“开关”这些功能。我做这样的封装,目的就是需要时快速启用、不需要时快速关闭。

我看你的截图,感觉是:你双击不同词汇的切换速度太快,而电脑打开GoldenDict太慢,跟不上你的手速,要么电脑硬件不够快,要么软件GoldenDict装载的词典太多或太重影响速度。

请禁用双击取词功能,仅使用GoldenDict原生的Ctrl+C+C,看看是否如你所愿?
AHK仅仅是模拟这个过程而已。

不是我电脑速度的问题,我还是用我之前的代码,你这个代码,双击有时候操作文件夹时会误操作复制!
深表感谢!

1 个赞

你不用不代表别人不用,

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
		}
1 个赞

关于鼠标取词的功能,GD 其实自带一个 (Ctrl+C)+C 连按就能弹出查词窗口,第一个 Ctrl+C 刚好就是复制。好像论坛里面提到过好几次取词的问题,但是都没有提到过这一点

1 个赞

特地感谢,只要能选取文本的,GoldenDict的快捷键好用;但对于图片或者图片类的pdf文件,这个工具才是利器!

1 个赞