简单的翻译脚本,使用F1复制选中的内容,通过360翻译网址进行翻译,翻译结果保存在剪切板。
;创建浏览器组件
MyGui := Gui()
WB := MyGui.Add("ActiveX", "w980 h300", "Shell.Explorer").Value ; 最后一个参数是 ActiveX 组件的名称.
;MyGui.Show()
WB.Navigate("https://fanyi.so.com/#") ; 这是特定于网页浏览器控件的.初始化翻译网址
f1::
{
A_Clipboard := "", 翻译结果 := "", 待翻译文本url :="" ; 先让剪贴板为空, 这样可以使用 ClipWait 检测文本什么时候被复制到剪贴板中.
Send "^c"
ClipWait(5) ; 等待剪贴板中出现文本.
if (A_Clipboard==""){
Return
}
;===尝试获取翻译结果,能获取到就初始化网址,保证结果为空
try { ; 尝试获取翻译结果
翻译结果 := WB.document.querySelector("body > div > div.main > div.import > div.result > p.content").innerText
}
if 翻译结果{
WB.Navigate("https://fanyi.so.com/#")
翻译结果 := ""
}
Sleep 200
待翻译文本url := Format("https://fanyi.so.com/#{1}", A_Clipboard)
WB.Navigate(待翻译文本url) ;
Sleep 200
StartTime2 := A_TickCount
While !翻译结果 { ;翻译结果为空,持续获取翻译结果,直到结果为真
翻译结果 := WB.document.querySelector("body > div > div.main > div.import > div.result > p.content").innerText ;获取翻译结果
Sleep 250
if (A_TickCount-StartTime2 > 5000) { ;超时未检查到就报错
MsgBox "超时5秒未获取到翻译结果,请检查!"
Return
}
}
A_Clipboard := 翻译结果
ToolTip(翻译结果)
SetTimer () => ToolTip(), -2000
}
Return
还是更推荐api,这种网页版的稳定性不大好
推荐将网页翻译改成deepL软件翻译,一直在用,选中文本ctrl +c+c就可以翻译