GoldenDict+Autohotkey-> 高亮即取词[Windows]
本帖最后由 Oeasy 于 2018-2-21 22:57 编辑参考:
- GoldenDict 专贴! https://pdawiki.com/forum/thread-11705-1-1.html
- GoldenDict 中文用户手册 http://www.jianshu.com/p/15dcd19ec8be {帐号已经被封禁}
- https://dictionaryphile.github.io/
-2016-05-09-
推荐这个 ahk
ZZ http://weibo.com/1928931362/Dcdvnphx7
GoldenDict 划译&点译插件 v0.9https://0paste.com/8133
原帖标题是“GoldenDict+Autohotkey->Chrome 下高亮即取词”,事实上,用上面的 ahk,任何程序下(Word、Acrobat 等),只要高亮(划)文字,就可以调出 GoldenDict 取词窗口(当然,前提是 GoldenDict 运行着)。
而且这个 ahk 另有妙用,如果是点译,取词窗口里有带发音的词典且 GoldenDict 设置为自动发音,那只要取词窗口存在着,就有可能不停地**重复发音(额,其实就是不停地在取同一个词)。{:4_104:}
static/image/hrline/2.gif
-obsolete-
zz
http://wlhunag.blogspot.com/2012/06/goldendict.html 感谢此文作者。
GoldenDict Win7 Chrome的螢幕取詞功能
By 黃文龍 |下午10:57 |GoldenDict |No comments
前個禮拜在Linux Mint 13裡面用Git 自行編譯 GoldenDict , 發現啟用"螢幕取詞"功能時,可以在Google Chrome裡面點兩下想查詢的英文字,然後就會自動跳出彈出式視窗。
但是在Win 7, 64 bit 裡面編譯最新的原始碼時,卻沒有這個功能。
後來用了Autohotkey 以後,發現有辦法~
只要在Autohotkey 裡面增加一段腳本即可。(當然程式碼倒數第三行要改成你Goldendict 安裝路徑。)
~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 D:\XXXX(GD所在路徑)\GoldenDict\GoldenDict.exe%clipboard%
}
return
這樣就能點兩下英文字就自動翻譯了~
其實不只Chrome, 只要能夠複製文字的所有程式,都可以使用~
--
测试结果 by Oeasy 2015年8月6日 08:16:38
Chrome 下只需要双击**单词高亮之,就蹦出 GoldenDict 取词窗口。当然,也可以用传统方式,鼠标高亮,按 Ctrl + C + C (取汉语词汇,也只能这样子了)。
https://www.pdawiki.com/forum/data/attachment/album/201508/06/082252kkanbi9n3ir1u3if.png
你好,请问,autohot, 建立了一个ahk文件,直接复制代码,只改动最后的一行吗,怎么不行呀,复制粘贴代码后是这样的,请问是什么问题,对电脑程序不懂,多谢了
~LButton::# K6 Kh8 ^9 _
% Q% U% [; Y1 w. o. u6 [; W2 ~[
Loop {
& _! t% f' S, Q; k7 N1 F; B% X; _' E) dLButtonDown :=
GetKeyState("LButton","P")
& r6 [6 u- @* ~) T2 k) `If (!LButtonDown)1 m% p/ L& T' v1 d5 U" z: |
Break
7 S2 _/ SF& E#
H- T+ C}; g+ E- b~# \7 r2 G. y; k" [! O
4 Z1 l2 W3 `. O& P, c! P" TWaitTime:=DllCall("GetDoubleClickTime")/4000- ?9 ^1
E, [# }4 Q/ x5 O
KeyWait, LButton, D T%WaitTime%
7 V% X2 Y+ @7 m7 cIf errorlevel=03 S& M5 `8 f4 I& R4 }' Tp1 z7 B
GoSub,
Routine' s3 H( i0 y" V; P* u! B
Return" v8 W2 k& O( `. h6 b% i( P" s) I
3 j. `: B, X8 T' n8 G! d) T$ |m. d
! p% rR6 s& M'
N, `/ d1 d1 o3 v% G
) i" [# k) ?* S3 T, k7 _
Routine:
" `- f% l+ v6 ]$ ^{! D# v& L6 I$ A, U8 o3 G
$ ?' p8 N" K1 }- v9 z& X' {1
O& _
ifwinactive ahk_class CabinetWClass+ A! U9 G0 m7 v6 R3 x8 ?, H
{8 I% _( c; u* _/ e8 B8 `9 F
return
* [& |+ x( U5 x; w:
t! C( k: f }* m, f8 C. @+ m% \
/ F" X( ], P|- M6 @
clipboard =
7 I- P/ j& T; l3 U- a; t send ,^c
% T3 w, ^( H7 f2 Y* }+ B+
i ClipWait,1$ R( \1 D5 ?% I; G# V
' J' {% H; kB2 X- F; j StringLen, cliplen, clipboard$ H! I4 ^2 I# y
if cliplen > 20+ W,
K/ n, W; l2 C$ d! W3 }
{ , c0 [# ~9 C5 B8 A6 q
;
5 d1 W: L+ N, x4 w) F9 A, C3 O& Kl# D/ G
return
/ X5 F& }0 w5 B# D}% c:
b2 x# L5 Q7 a; ~
4 V: ]0 m- u7 z$ R@0 `1 V/ E, ^
if cliplen < 24 ~; ~. u3 d; p
{ " d" I. F7 ^/ T& c! _' Y. u
;
, W8 q!
@1 `" o/ W& j
2 z" V) x" J$ w return, Z/ p/ s6 T- F5 Q0 n; R9 l4 t8 m
}
, E$ z* \: J6 S9 X8 ]; {t5 u' g" ^* h" W8 U- l2 b;
j6 u
5 n) q8 M' K- S* y
; send,{Ctrl down}cc{Ctrl up} z( u; y- S6 b. K- j0 L1 S/ b2 r0 \/ }k( A4 t% p" [' p
run D:\新建文件
夹\软件\GoldenDict\GoldenDict.exe%clipboard%9 ^4 h2 |) jf1 Nl7 q8 ?
, l- Tp5 [4 E( I2 t; z}' R, L. Y( Q0 }: I
return clliangju 发表于 2015-9-17 16:52
你好,请问,autohot, 建立了一个ahk文件,直接复制代码,只改动最后的一行吗,怎么不行呀,复制粘贴代码后 ...
1. 本论坛设置了干扰字符串,所以你直接从我帖子里直接复制的代码,是不可能正常运行的。解决办法有 2:
①去原文章 http://wlhunag.blogspot.com/2012/06/goldendict.html(这个链接需要科学上网) 复制代码。
②下载附件【GoldenDict.zip】,解压,里面的 GoldenDict.txt 就是从 http://wlhunag.blogspot.com/2012/06/goldendict.html 这里复制的代码,没有干扰字符串。可把下面这一行更改为自己的 GoldenDict.exe 所在的路径,重新创建一个 ahk 文件。
run D:\XXXX(GD所在路徑)\GoldenDict\GoldenDict.exe%clipboard%
顺便,利用 Autohotkey 取词,体验在一部分用户看来,也不是那么好,可以根据自己的喜好选择某些时候运行脚本,某些时候停止脚本。
2.
Q: 还有我用GOLden,直接设置屏幕取词可以,但是,选择屏幕取词和按下crt情况下取词就没有反应了
A: 你应该按 Ctrl+ C + C (也就是按住 Ctrl,同时按下 C 两次)。
用的楼主推荐的这段script,win10下挺好用的
;GoldenDict 划译插件
;version 0.9
;[email protected]
;2016-01-08
;GUI及其他功能完善有待日后空闲
;========使用说明========
;pause键 启用/停用 脚本
;鼠标拖选、双击选词翻译
Pause::Suspend
~LButton::
CoordMode, Mouse, Screen
SetKeyDelay 0, 10
c := 0
MouseGetPos, x1, y1
KeyWait, LButton
MouseGetPos, x2, y2
if (x1<>x2 or y1<>y2) {
gosub, Copy
}
else if (A_priorHotKey = "~LButton" and A_TimeSincePriorHotkey < 400){
gosub, Copy
}
return
Copy:
c := 1
Send ^c
return
OnClipboardChange:
if (c) {
Send ^{c 2}
; MsgBox %clipboard%
}
return
感谢楼主的分享! 需要使用Autohotkey。
我还是本办法吧,ctrl+c+c
验证码真是有问题,尧舜禹那个问题,我ABCD都输入了几遍,仍然错误。 果然很完美 不过美中不足,word里面好像无法用这种方法屏幕取词 {:4_104:}感谢转载分享代码! 还有我用GOLden,直接设置屏幕取词可以,但是,选择屏幕取词和按下crt情况下取词就没有反应了 Oeasy 发表于 2015-9-18 07:18
1. 本论坛设置了干扰字符串,所以你直接从我帖子里直接复制的代码,是不可能正常运行的。解决办法有 2 ...
多谢了,学习了
ZZ http://weibo.com/1928931362/Dcdvnphx7
GoldenDict 划译&点译插件 v0.9https://0paste.com/8133
使用Ctrl + C + C不能取词是怎么回事啊,每次按这个组合键总是跳出第一次查询的词条,而不是当前要查询的词条。win7和win10下都有过这个问题。
命令行命令:goldendict.exe <要查的词> 这样可以查词,而且是弹出取词窗口来显示释义。因此做一个浏览器扩展,使得划词之后就触发此命令即可。
这样最完美。希望能够有大神出手实现一下。 Nice work, bro! fedor 发表于 2016-2-18 09:12
使用Ctrl + C + C不能取词是怎么回事啊,每次按这个组合键总是跳出第一次查询的词条,而不是当前要查询的词 ...
额,你是不是没有用鼠标选中(即“高亮”)想要查询的那个词?
平白无故按 Ctrl + C + C ,GoldenDict 哪知道你要查哪个词啊,调出来的窗口显示的当然是之前查的那个词。
Oeasy 发表于 2016-5-9 21:34
额,你是不是没有用鼠标选中(即“高亮”)想要查询的那个词?
平白无故按 Ctrl + C + C ,GoldenDi ...
肯定是用鼠标选中要查询的词了 fedor 发表于 2016-5-10 22:49
肯定是用鼠标选中要查询的词了
是这样的,ctrl c 失效 。改成ctrl +任意 就可以了 。有点麻烦。然后再CTRL+C+任意 可以查词,
原因就是CTRL C 失效。因为在开G的时候 别的文档 或者查询什么 CTRL C 也是失效的 关了软件就好了 可见 不知什么和他冲突了。希望有人可以解答 新版本可以改正。 Oeasy 发表于 2016-5-9 21:34
额,你是不是没有用鼠标选中(即“高亮”)想要查询的那个词?
平白无故按 Ctrl + C + C ,GoldenDi ...
OOOOOO大大大 他那个问题。
是这样的,ctrl c 失效 。改成ctrl +任意 就可以了 。有点麻烦。然后再CTRL+C+任意 可以查词,
原因就是CTRL C 失效。因为在开G的时候 别的文档 或者查询什么 CTRL C 也是失效的 关了软件就好了 可见 不知什么和他冲突了。希望有人可以解答 新版本可以改正。 Doris 发表于 2016-7-12 11:21
是这样的,ctrl c 失效 。改成ctrl +任意 就可以了 。有点麻烦。然后再CTRL+C+任意 可以查词,
原因就 ...
怎么改都没用的,都已经试过了。 Ctrl + C + C 太麻烦,试试Autohotkey好用不 经测可用,功能非常棒,特来感谢!{:4_104:} Oeasy 发表于 2015-9-18 07:18
1. 本论坛设置了干扰字符串,所以你直接从我帖子里直接复制的代码,是不可能正常运行的。解决办法有 2 ...
世事艰难啊
简直是爽的飞起,感谢o大! autohotkey +代码ahk文件 goldendict高亮取词实在是太棒了 fedor 发表于 2016-5-10 22:49
肯定是用鼠标选中要查询的词了
我也遇到这个问题了,Ctrl + C + D或者Ctrl + C +任何别的键都不能用。我就纳闷了,看到按Ctrl + C + C时,goldendict窗口左上角的回退键一闪一闪的,自动回到第一个,这机子里有什么妖物在作祟?
然后卸载了360,天下太平了。不知这妖物是360还是别的什么东西,反正360卸了问题就解决了。不过,如果同时打开goldendict和欧路,在word文档内容被选中时,如果输入法是中文状态,有时会冒出一个C字来,看来后台还不干净。是goldendict的bug?
本帖最后由 sff34 于 2017-12-1 01:27 编辑
看到另一个写GoldenDict+Autohotkey代码的作者说,有时会冒出"C"字来( https://weibo.com/1928931362/Dcdvnphx7?type=comment )。看了他的代码,用的是“Send ^{c 2}”而不是原作者的"send,{Ctrl down}cc{Ctrl up}"。
难道现在系统里的某程序有类似“Send ^{c 2}”的代码?
有道词典的取词有时会使crtl+c失效,( https://www.zhihu.com/question/54162089 ),不过我没遇到过。让有道词典高亮后GoldenDict就能取词,这样才算完美。试一试让有道词典分别用屏幕指译和划译取“looking at”、“looks at”之类的词(不要开OCR),再对比别的软件的屏幕取词和输入显示,哎。。。
就有道词典和EBDic还算合格。这GoldenDict,连一些最基本的功能都不具备啊。。。
页:
[1]
2