很简单也很实用的小工具,以爬虫的方式而不是API
以爬虫的形式做的翻译的小工具
- 选中文字,按下Shift键即翻译,并把翻译的结果放在剪贴板中。
- 如果百度翻译网站没有变动,理论可以一直使用。
- 只需要会简单的网页调试知识,就可以以同样的方式,改成谷歌,必应等翻译小工具。。。
- (英语不好我用作翻译代码注释QWQ)
这里以百度翻译为例:
;创建浏览器组件
Gui Add, ActiveX, w980 h300 vWB, Shell.Explorer
WB.Silent:=True
WB.Navigate("https://fanyi.baidu.com/#auto/zh/")
;等待加载完毕
while WB.busy
Continue
SoundBeep
;翻译热键
~Shift::
Clipboard := "" ; 清空剪贴板
Send, ^c
ClipWait, 2
if (Clipboard=="")
{
Return
}
;设置【百度翻译网页】的输入内容
WB.document.getelementsByClassName("textarea")[0].value:=Clipboard
;点击【百度翻译网页】的翻译按钮
WB.document.getelementsByClassName("trans-btn trans-btn-zh")[0].click()
;获取【百度翻译网页】翻译后的内容
R:
text:= WB.document.getelementsByClassName("ordinary-output target-output clearfix")
;判断【百度翻译网页】翻译后的内容
if (text.Length==0){
Goto R
}else if(text[0].InnerText==""){
Goto R
}
Loop % text.Length
{
textout.=text[A_Index-1].InnerText "`n"
}
;设置【百度翻译网页】翻译后的内容
WB.document.getelementsByClassName("ordinary-output target-output clearfix")[0].InnerText:=""
;置剪贴板,显示ToolTip:2秒
Clipboard:=textout
CoordMode, ToolTip,Screen
CoordMode, Caret,Screen
ToolTip, %textout%, A_CaretX, A_CaretY - 20
textout:=""
SetTimer, RemoveToolTip, -2000
Return
;移除ToolTip:
RemoveToolTip:
ToolTip
Return
很不错
不错的方法,只是A_CaretX, A_CaretY不是所有窗口都有效的。建议改成鼠标跟随就可以了
谢谢学到了