做网站专业的公司,做苗木网站哪家好,凡科网做音乐网站,做视频开头动画网站前言#xff1a; 不依赖外部api接口#xff0c;界面简洁#xff0c;翻译快速#xff0c;操作简单#xff0c; 有网络就能用 、还可以把ocr结果非中文翻译成中文、同样可以识别中英日韩等60多个国家语言并翻译成中文#xff0c;十分的nice 1、所需环境
windows10及其以上…前言 不依赖外部api接口界面简洁翻译快速操作简单 有网络就能用 、还可以把ocr结果非中文翻译成中文、同样可以识别中英日韩等60多个国家语言并翻译成中文十分的nice 1、所需环境
windows10及其以上环境最佳其它windows系统也可以没有试过autohotkey v2版本运行有exe可以忽略连接到互联网snipaste截图工具
2、使用方式 下载并安装snipaste 然后运行该脚本按截图按键进行截图我的ctrlalta默认应该不是这个、 然后再截图界面按下ctrl1就会执行ocr操作、 同样ESC退出ocr界面
3、效果演示 4、代码
#SingleInstance force
Persistent true ;阻止脚本自动退出
FileEncoding UTF-8 ;读写文件编码设置
CoordMode Mouse,Screen
OnMessage 0x0201,WM_LBUTTONDOWN
OnMessage 0x100 ,KEYBOARD_MESSAGE_CALLBACK ;键盘事件
;ctrl1执行选中搜狗翻译搜狗ocr操作
onStartup()
OnClipboardChange ClipChanged ;监听剪切板
onExit onExitApp ;退出时执行;ctrl1执行选中搜狗翻译搜狗ocr操作
#MaxThreadsPerHotkey 10
^1::{try{if not ak.ConnectedToInternet(){ ;互联网没有连接throw Error(没有互联网连接)}if not winActive(sogouocr.snipaste_title)returnMouseGetPos xpos, yposTn4:WinExist(loadgif.loadGuiTitle)?loadgif.loadGui.Destroy(): ;开始删除动画Tn3:WinExist(sogouocr.html_title)?sogouocr.ocrgui.Destroy(): ;开始删除ocr guisetTimer(()loadgif.show(xpos5,ypos5),-1) ;开始异步加载动画setTimer(()loadgif.loadGui.Destroy(),-4000) ;开始4s后关闭动画sogouocr.showOcrResult()}catch as e{msg:e}finally{T5:loadgif.loadGui?loadgif.loadGui.Destroy(): ;结束显示结果后关闭动画}
};初始化值
onStartup(socketon:1){setTimer ()sogouocr.sendGetRequest(1),-1 ;初始化ocr请求setTimer ()loadgif.initData() ,-1 ;初始loadgifif FileExist(sogouocr.catcheguiHtmlPath) ;删除ocr的gui缓存html文件,重新获取html并缓存fileDelete(sogouocr.catcheguiHtmlPath)imageutil.init() ;初始化gdireturn ;
}
;清除缓存
onExitApp(ExitReason, ExitCode)
{if FileExist(loadgif.loadhtmlPath) ;清除tmp中文件在脚本启动时重新生成fileDelete(loadgif.loadhtmlPath)imageutil.close() ;关闭gdireturn ;
};移动选框GUI
WM_LBUTTONDOWN(wParam, lParam, msg, hwnd){OnMessage 0x0201,WM_LBUTTONDOWNif(A_CursorArrow)PostMessage 0xA1, 2
}
;响应键盘事件
KEYBOARD_MESSAGE_CALLBACK(wParam, lParam, msg, hwnd)
{if((wparam13 || wparam27) and sogouocr.ocrGui){ ;ocr窗口响应回车事件和esc事件sogouocr.ocrGui.destroy() ;ocr}
}
;监听剪切板
ClipChanged(DataType)
{;DataType 0什么内容没有1 txt内容2非文本的内容例如图片;1 如果剪贴板中仅包含能以文本形式表示的内容 (这里也包含了从资源管理器窗口 复制的文件);ak.clipdataType:DataType
};搜狗ocr复制原文
srcCopyButton1_OnClick()
{
; msgBox % SoGouOcr.result_source : SoGouOcr.result_transA_Clipboard:sogouocr.contentObj.contentssogouocr.ocrgui.destroy()
}
;搜狗ocr复制翻译后
srcCopyButton2_OnClick()
{A_Clipboard:sogouocr.contentObj.transsogouocr.ocrgui.destroy()
}
;搜狗ocr关闭窗口事件
exitBtn1_OnClick()
{sogouocr.ocrgui.destroy()
};获取图片或者ico等的base64编码
getIco(icoName)
{static obj:{;加载动画loadGif:( LTrim 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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)}return obj.%icoName%
}class sogouocr
{static url1:https://fanyi.sogou.com/ ;搜狗主页 获取带有SNUID相关cookiestatic url2:https://fanyi.sogou.com/picture ;搜狗图片识别网页 获取uuidstatic url3:https://pb.sogou.com/cl.gif? ;打开文件会发送一个get请求 获取带有SNUID相关cookiestatic url4:https://fanyi.sogou.com/api/transpc/picture/upload ;上传文件接口需要携带 snuid和FQV相关cookiestatic url5:https://fanyi.sogou.com/picture ;界面显示所需要的htmlstatic boundary : ----WebKitFormBoundaryaEHpMn3lywBtjPfE ;formData边界static userAgent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36static header: ;访问url产生的请求头信息包括cookiestatic uuid: ;方位url2返回的请求头中的uuidstatic snipaste_title:Snipper - Snipastestatic html_title:ahk_sogouocr_result_v1static html_zoom:0.7 ;网页缩放static font_size:25 ;设置字体大小static html_top_color:#0af59b ;顶部边框颜色static pic_min_w:40 ;图片最小允许宽度小于这高度就会按照pic_scale放大static pic_min_h:30 ;图片最小允许高度小于这高度就会按照pic_scale放大static pic_scale:2.5 ; 图片缩放比例static gui_w:500 ;没有缩放之前的gui大小static screen_gap:5 ;设置显示与边框的位置间隙static catcheguiHtmlPath:A_temp . \ahkocrgui.catche.delete.html ;缓存ocr渲染static catche_uuid:b32a8d43-c01b-c3dc-1313-82fa0ddf0457- . Random(1,10000) ;用于ocr的html页面缓存数据static ocrgui: ;ocr的guistatic contentObj: ;翻译返回的json结果static req : comObject(WinHttp.WinHttpRequest.5.1) ;请求对象static xbuttonpicPath: ;快捷ocr保存图片所在位置;剪切板中获取png图片并且恢复pngstatic showOcrResult(){path:this.capturePic() ;截图并保存到临时文件 大概100ms左右contentObj:this.sendallRequest(path) ;发送请求并获取json数据,230ms左右this.contentObj:contentObjthis.showocrGui(contentObj) ;渲染json数据到gui中}static capturePic(){if((tmp:ak.clipdataType)!2) ;非图片时才恢复数据clipboard_save:ClipboardAll()A_Clipboard: ,placeholder:♜ControlSend ^c, ,this.snipaste_title ;发送ctrlcif not clipwait(3,1){ ;1任意类型T3:tmp2?(A_Clipboard:placeholder):(A_Clipboard:clipboard_save) ;恢复数据throw Error(等待剪切板超时)}path:Format({1}\{2}-{3}-{4}_{5}-{6}-{7}_ocr.png,A_Temp,A_YYYY,A_MM,A_DD,A_Hour,A_Min,A_Sec)
; saveflag:ak.savepic(path,this.pic_min_w,this.pic_min_h,this.pic_scale) ;用powershell方式保存图片慢imageutil.saveclip(path,this.pic_min_w,this.pic_min_h,this.pic_scale)T3:tmp2?(A_Clipboard:placeholder):(A_Clipboard:clipboard_save) ;恢复数据return path};发送所有请求,并缓存cookie ,会返回一个jsonstatic sendallRequest(pngpath){
; req.SetProxy(2, 127.0.0.1:8888) ;设置fiddler抓包服务器T1: not this.header?this.sendGetRequest():json:this.sendPostRequest(pngpath) ;大概170ms左右contentObj:this.dealResult(json)return contentObj};显示ocrgui页面,添加gui并渲染html,传入json数据static showocrGui(contentObj){page:this.getGuiHtml(contentObj) ;获取渲染页面Tn3:winActive(sogouocr.html_title)?sogouocr.ocrgui.Destroy(): ;删除之前ocr guithis.ocrgui:ocrGui:Gui(LastFound AlwaysOnTop -Caption ToolWindow,this.html_title) ;添加gui并渲染htmlWB : ocrGui.Add(ActiveX,Format( x0 y0 w{1} h{2} ,this.gui_w*this.html_zoom,1080),Shell.Explorer).Valueak.display(WB,page) ;展示页面div_h:WB.document.getElementById(mainDiv).offsetHeight ;获取当前div高度srcBtn: WB.document.getElementById(src-clipboard) ;复制【源数据】按钮tranBtn : WB.document.getElementById(target-clipboard) ;复制【翻译数据】按钮exitBtn1 : WB.document.getElementById(exitBtn1) ;退出【X】按钮srcBtn.onclick:(()srcCopyButton1_OnClick())tranBtn.onclick:(()srcCopyButton2_OnClick())exitBtn1.onclick:(()exitBtn1_OnClick())mainDivW:this.gui_w*this.html_zoommainDivH:div_h*this.html_zoomMouseGetPos x, y ;获取鼠标位置ak.dealshowGui(x,y,mainDivW,mainDivH,newX,newY) ;重新计算坐标位置ocrGui.Show(Format(x{1} y{2} w{3} h{4},newX,newY,mainDivW,mainDivH))ak.frameShadow(ocrGui.hwnd ) ;窗口阴影};请求url5,获取渲染页面所需要的html ,传入处理后的json结果 可以缓存页面static getGuiHtml(contentObj){;判断缓存是否存在if not fileExist(this.catcheguiHtmlPath){static req : ComObject(WinHttp.WinHttpRequest.5.1)req.open(GET,this.url5 ,true) ;必须有http:// ,true 异步false 同步(默认)req.Send()req.WaitForResponse()result : req.ResponseTextstart_element:!--[if lte IE 9] script ,end_element:/divscript ;开头结尾标记result:StrReplace(result,//,https://)start_pos:instr(result,start_element,1,1) ;找到body开头if(!start_pos)throw Error(在html中未找到开头元素: . start_element)end_pos: instr(result,end_element,1,start_pos) ;参数依次是1.目标字符2.要匹配的字符3.是否大小写消息敏感4.起始位置if(!end_pos)throw Error(在html中未找到结尾元素: . end_element)html_header:subStr(result,1,start_pos-1)html_footer:subStr(result,end_posstrLen(/div))fileAppend Format({1}{2}{3},html_header, this.catche_uuid ,html_footer) ,this.catcheguiHtmlPath ;缓存}else{htmlcontent:FileRead(this.catcheguiHtmlPath)}font_size:strLen(contentObj.contents)40?this.font_size*0.85:this.font_size ;缩放字体exit_left:this.html_zoom*this.gui_w-18,exit_top:8,exit_zoom:0.3 ;退出图标convert_left:10, convert_bottom:30,convert_zoom:0.5 ;转换图标gui_w:this.gui_w * this.html_zoom ,gui_r:gui_w10 ;右滑块宽度10pxto_right:Format(window.scrollTo({1},0),gui_r), to_left:Format(window.scrollTo(0,{1}),gui_w)main_div:Format(div idmainDiv stylezoom:{1};border-top:5px solid {2},this.html_zoom,this.html_top_color)div_element_start:Format({1}div classtrans-box picdiv classpic-result-boxdiv classpic-fromdiv classtext-box stylefont-size:{2}px p,main_div,font_size);导入搜狗图片并设置图标html_style:Format(style.source_trans_convert{width: 30px;height: 30px;z-index:100;zoom:{1};background: url(https://search.sogoucdn.com/translate/pc/static/img/sprite_common_translate.ed1fb14.png) no-repeat;background-position: -372px -176px;}.source_trans_convert:hover{ cursor:pointer;background: url(https://search.sogoucdn.com/translate/pc/static/img/sprite_common_translate.ed1fb14.png) no-repeat; background-position: -372px -142px;zoom:0.51}.html_gui_exit{width: 38px;height: 38px;zoom:{2};position: fixed;left:{3}px;top: {4}px;z-index:2;background: url(https://search.sogoucdn.com/translate/pc/static/img/sprite_common_translate.ed1fb14.png) no-repeat;background-position: -78px -319px;}.html_gui_exit:hover{cursor:pointer;background: url(https://search.sogoucdn.com/translate/pc/static/img/sprite_common_translate.ed1fb14.png) no-repeat;background-position: -38px -319px;zoom:0.32}/style,convert_zoom,exit_zoom,exit_left,exit_top);JS的左右原数据翻译切换操作html_script:Format(scriptvar flagtrue;window.onload function(){var div_h document.getElementById(mainDiv).offsetHeight;document.getElementById(convertBtn1).style.positionfixed;document.getElementById(convertBtn1).style.top(div_h*{1}-{2})px;document.getElementById(convertBtn1).style.left{3}px;};function convert_click(){if(flag){{4}}else{{5}}flag!flag}/script,this.html_zoom,convert_bottom,convert_left,to_right,to_left);退出图标htmlico_div:div classhtml_gui_exit idexitBtn1/divdiv classsource_trans_convert onclickconvert_click() idconvertBtn1/divspan_elements: ,span_elements2: ;需要构造html所需要的数据for k,v in contentObj.contentArr{span_elements.Format(span idleft-{1}-s{2}/span,k,strReplace(strReplace(v,,lt;),,gt))}for k2,v2 in contentObj.transArr{span_elements2.Format(span idright-{1}-s{2}/span,k2,strReplace(strReplace(v2,,lt;),,gt))}right_copy:Format(div idtarget-clipboard classbtn-copy {1}/div,复制) ;构建复制图标right_element:Format(div classpic-todiv classtext-boxp{1}/p/div{2}/div,span_elements2,right_copy)div_element_end:Format(/p/divdiv idsrc-clipboard classbtn-copy{1}/div/div{2}/div/div,复制,right_element)bodyhtml:html_style html_script ico_div div_element_start span_elements div_element_end ;构造所需bodyresult_html:isSet(htmlcontent)?strReplace(htmlcontent,this.catche_uuid,bodyhtml):(html_header . bodyhtml . html_footer) ;组装htmlreturn result_html};发送get请求打开搜狗翻译主页主要为了获取cookie中的snuid(url3,url4中),FQV(url中) ,wuid(url3中)使用static sendGetRequest(init:0){Thread Priority ,-1try{if not ak.ConnectedToInternet() ;互联网没有连接throw Error(没有互联网连连接);①请求url1this.req.Open(get, this.url1,true) ;true 表示异步this.req.setRequestHeader(User-Agent,this.userAgent) ;在open之后this.req.send()this.req.WaitForResponse()headers:this.req.GetAllResponseHeaders() ;获取所有相应头 ,里面包含cookiethis.header:this.header?this.header:ak.getHeaderObj(headers);②请求url2this.req.Open(get, this.url2,true) ;true 表示异步this.req.send()this.req.WaitForResponse()this.uuid:this.req.GetResponseHeader(UUID:) ;获取相关cookie;③.请求url3发送预请求this.sendPreGetRequest()}catch as e{throw e}};发送上传图片的预请求static sendPreGetRequest(){;③请求url3_t:ak.getTimeStamp() ,_r:floor(1000* Random(0.0,1.0))snuid:this.header.cookie.snuid.valuewuid:this.header.cookie.wuid.valueurl3WithParam : format({1}uigs_productidvs_webvstypetranslatesnuid{2}pagetypeindextypeimgtransuuid{3}frdefaultterminalwebonerrortrue. wuid{4}overIe101abtest3uigs_clupload_click_home_t{5}_r{6}uigs_st0,this.url3,snuid,this.uuid,wuid,_t,_r)this.req.Open(get, url3WithParam,true)this.req.send()this.req.WaitForResponse()return true};④.请求url4上传文件提交图片 并返回解析的json字符串 ,传入req请求和图片路径static sendPostRequest(pngpath){;实例:ABTEST6|1673104302|v17; IPLOCCN5101;SNUIDDD5759A6D2D620B6A66D186BD31414E5;FQVc7862eb243f3dfbcf3b287dcc047f0e7currentCookie:Format(ABTEST{1};IPLOC{2};SNUID{3};FQV{4},this.header.cookie.ABTEST.value,,this.header.cookie.SNUID.value,this.header.cookie.FQV.value)while not FileExist(pngpath){ ;3s文件不存在就退出sleep 20if(A_index100)throw Error(文件不存在)}extra_data:{from:auto,to:zh-CHS,imageName:xx.png}sec_ch_ua: Not_A Brand;v99, Google Chrome;v109, Chromium;v109objParam : Map(fileData,[pngpath],fuuid,this.uuid,extraData,extra_data) ;post数据this.getPostFormBinData(PostData,hdr_ContentType, objParam)this.req.Open(POST, this.url4,true)this.req.SetRequestHeader(Content-Type, hdr_ContentType)this.req.SetRequestHeader(sec-ch-ua,sec_ch_ua)this.req.SetRequestHeader(sec-ch-ua-mobile,?0)this.req.SetRequestHeader(sec-ch-ua-platform,Windows)this.req.SetRequestHeader(sec-Fetch-Dest,empty)this.req.SetRequestHeader(sec-Fetch-Mode,cors)this.req.SetRequestHeader(sec-Fetch-Site,same-origin)this.req.SetRequestHeader(User-Agent,this.userAgent)this.req.SetRequestHeader(cookie,currentCookie)this.req.Send(PostData)this.req.WaitForResponse()jsonresult:this.req.ResponseTextreturn jsonresult};处理返回数据提取json中有用的数据 ,resJson:返回的完整json;返回示例一个对象:{source:识别数据,trans:翻译后的数据}static dealResult(resjsonStr){if not resjsonStrthrow Error(返回json字符串为空)retobj:{} ,contents: ,trans:,contentArr:[] ,transArr:[]jsonObj:JSON2.parse(resjsonStr)if(((data:jsonObj.data)null) or jsonObj.status!0)returnresultArr:jsonObj.data.resultfor contentobj in resultArr{contents:contents . contentobj.content . rntrans:trans . contentobj.trans_content . rncontentArr.push(contentobj.content )transArr.push(contentobj.trans_content)}retobj.contents:contentsretobj.trans:transretobj.contentArr:contentArrretobj.transArr:transArrreturn retobj};#获取post请求中payload 在post慢中对应数据类型为body中的form-data 数据类型为二进制;#retData 返回的二进制数据retHeader请求头objParam入参对象 [] 中会被认为是文件;#示例objParam : {fileData:[src],fuuid:aa409350-e00c-49df-9f20-517796457e68,extraData:extra_data}static getPostFormBinData(retData,retHeader,objParam) {CRLF : rnBoundaryLine : -- . this.boundary ;创建一个边界binArrs : []For k, v in objParam ;循环设置值{If IsObject(v) {For i, FileName in v{ ;当前二进制数据来源于文件str : BoundaryLine . CRLF. Content-Disposition: form-data; name . k . ; filename . FileName . . CRLF. Content-Type: . this.MimeType(FileName) . CRLF . CRLFbinArrs.Push( this.BinArr_FromString(str) )binArrs.Push( this.BinArr_FromFile(FileName) )binArrs.Push( this.BinArr_FromString(CRLF) )}} Else {str : BoundaryLine . CRLF. Content-Disposition: form-data; name . k . CRLF . CRLF. v . CRLFbinArrs.Push( this.BinArr_FromString(str) )}}str : BoundaryLine . -- . CRLFbinArrs.Push(this.BinArr_FromString(str) ); FinishretData : this.BinArr_Join(binArrs*)retHeader: multipart/form-data; boundary . this.boundary};判断当前类型static MimeType(FileName) {n : FileOpen(FileName, r).ReadUInt()Return (n 0x474E5089) ? image/png: (n 0x38464947) ? image/gif: (n0xFFFF 0x4D42 ) ? image/bmp: (n0xFFFF 0xD8FF ) ? image/jpeg: (n0xFFFF 0x4949 ) ? image/tiff: (n0xFFFF 0x4D4D ) ? image/tiff: application/octet-stream};字符串转换为二进制static BinArr_FromString(str) {oADO : ComObject(ADODB.Stream)oADO.Type : 2 ; adTypeTextoADO.Mode : 3 ; adModeReadWriteoADO.OpenoADO.Charset : UTF-8oADO.WriteText(str)oADO.Position : 0oADO.Type : 1 ; adTypeBinaryoADO.Position : 3 ; Skip UTF-8 BOMBinRes:oADO.ReadoADO.Closereturn BinRes};把文件转换为二进制static BinArr_FromFile(FileName) {oADO : comObject(ADODB.Stream)oADO.Type : 1 ; adTypeBinaryoADO.OpenoADO.LoadFromFile(FileName)BinRes:oADO.ReadoADO.Closereturn BinRes};合并二进制数据static BinArr_Join(Arrays*) {oADO : comObject(ADODB.Stream)oADO.Type : 1 ; adTypeBinaryoADO.Mode : 3 ; adModeReadWriteoADO.OpenFor i, arr in ArraysoADO.Write(arr)oADO.Position : 0BinRes:oADO.ReadoADO.Closereturn BinRes}
}
;----------------------------------------------------------------------------------------------------------搜狗ocr class
;----------------------------------------------------------------------------------------------------------等待动画类 class
class loadgif
{;等待动画的html 缓存在tmp中初始化脚本会删除配置static waithtml:(htmlhead/headbody stylemargin: 0;background-color: {1}; . ;{1}#ffffff背景颜色img srcdata:image/jpeg;base64,{2} . ;{2}base64编码/body ./html)static loadhtmlPath:Format({1}\sogotranswaitload.tmp.html,A_Temp) ;缓存gif每次重启会删除static background_color:#ffffff ;gui和html背景色,设置为其它色会有短暂的显示static loadGifWb:unset ;activeX的句柄static loadGifsize:30 ;加载图标sizestatic loadGuiTitle:ahk2loaddingTitle ;加载动画标题static loadGui: ;loadgif的GUI;初始化数据,flag0 第一次执行脚本的时候后初始化falg1 在运行时初始化static initData(flag:0){if not flag{T0: FileExist(this.loadhtmlPath)? fileDelete(this.loadhtmlPath):this.initData(1)return}if not FileExist(this.loadhtmlPath){waitLoadHtml:Format(this.waithtml,this.background_color,getIco(loadGif))FileAppend(waitLoadHtml, this.loadhtmlPath)}};显示等待动画 在指定位置static show(xPos,yPos){this.initData(1)this.loadGui:loadGui:Gui(AlwaysOnTop -Caption ToolWindow,this.loadGuiTitle) ;参数1:gui.opt支持的任何选项参数2:标题loadGui.BackColor : Ltrim(this.background_color,#)WinSetTransColor(loadGui.BackColor 250, loadGui) ;设置透明色this.loadGifWb:WB: loadGui.Add(ActiveX, Format(x0 y0 w{1} h{2},this.loadGifsize18,this.loadGifsize18), Shell.Explorer).Value ;添加activex组件最多支持IE11loadGui.Show(Format(x{1} y{2} w{3} h{4} NoActivate,xPos,yPos,this.loadGifsize,this.loadGifsize))ak.display(WB,,this.loadhtmlPath)}
}
;----------------------------------------------------------------------------------------------------------等待动画类 class
;----------------------------------------------------------------------------------------------------------image GDI工具类
class imageutil
{;GDI句柄static GdipToken : 0;当前托盘图标,防止重复创建同一图标static trayiconFlag:0;初始化GDI模块static init(){DllCall(LoadLibrary, str, gdiplus)si : Buffer(A_PtrSize 4 ? 16:24, 0) ; sizeof(GdiplusStartupInput) 16, 24NumPut(uint, 0x1, si)DllCall(gdiplus\GdiplusStartup, ptr*, GdipToken:0, ptr, si, ptr, 0)this.GdipToken:GdipToken};保存图片,默认png格式 ,filepath:路径,minW/minH:缩放的最小宽度/高度小于就缩放scale倍数,sextension文件类型pngstatic saveclip(filepath,minW:0,minH:0,scale:1,extension:png){if not (pBitmap:this.getBitFromClip())throw Error(获取pBitmap异常)this.saveBitmap(pBitmap,filepath,minW,minH,scale,extension)};保存bitmap图片static saveBitmap(pBitmap,filepath,minW:0,minH:0,scale:1,extension:png){if not pBitmapthrow Error(传入pBitmap异常)this.select_codec(pBitmap, pCodec, ep, ci, v ,extension)DllCall(gdiplus\GdipGetImageWidth, ptr, pBitmap, uint*, width:0) ;获取图片宽度DllCall(gdiplus\GdipGetImageHeight, ptr, pBitmap, uint*, height:0) ;获取图片高度scale:(widthminW or heightminH )?scale:1this.BitmapScale(pBitmap,scale) ;缩放Loop {if !DllCall(gdiplus\GdipSaveImageToFile, ptr, pBitmap, wstr, filepath, ptr, pCodec, ptr, IsSet(ep) ? ep : 0)breakelseif A_Index 6Sleep (2**(A_Index-1) * 30)elsethrow Error(保存图片异常)}};获取粘贴板数据返回bitmap的指针 pBitmap 非图片时报错static getBitFromClip() {Loop{if DllCall(OpenClipboard, ptr, A_ScriptHwnd)breakelseif A_Index 6Sleep (2**(A_Index-1) * 30)elsethrow Error(打开剪切板失败)}if !DllCall(IsClipboardFormatAvailable, uint, 2){ ;CF_BITMAPDllCall(CloseClipboard)throw Error(获取CF_BIUTMAP失败)}if !(hbm : DllCall(GetClipboardData, uint, 2, ptr)){DllCall(CloseClipboard)throw Error(获取剪切板数据失败)}DllCall(gdiplus\GdipCreateBitmapFromHBITMAP, ptr, hbm, ptr, 0, ptr*, pBitmap:0)DllCall(DeleteObject, ptr, hbm)DllCall(CloseClipboard)return pBitmap};获取图片的编码信息static select_codec(pBitmap, pCodec, ep, ci, v ,extension:png, quality:100) {; Fill a buffer with the available image codec info.DllCall(gdiplus\GdipGetImageEncodersSize, uint*, count:0, uint*, size:0)DllCall(gdiplus\GdipGetImageEncoders, uint, count, uint, size, ptr, ci : Buffer(size))loop {if (A_Index count) ;Could not find a matching encoder for the specified file format.throw Error(找不到匹配的图片编码)idx : (487*A_PtrSize)*(A_Index-1)} until InStr(StrGet(NumGet(ci, idx323*A_PtrSize, ptr), UTF-16), extension) ; FilenameExtensionpCodec : ci.ptr idx ; ClassIDreturn 1};缩放图片,scale 缩放倍数可以是数组[m,n] 表示长度缩放m倍数宽度缩放n倍数static BitmapScale(pBitmap, scale) {if not (IsObject(scale) ((scale[1] ~ ^\d$) || (scale[2] ~ ^\d$)) || (scale ~ ^\d(\.\d)?$))throw Error(缩放倍数异常scale . scale); Get Bitmap width, height, and format.DllCall(gdiplus\GdipGetImageWidth, ptr, pBitmap, uint*, width:0)DllCall(gdiplus\GdipGetImageHeight, ptr, pBitmap, uint*, height:0)DllCall(gdiplus\GdipGetImagePixelFormat, ptr, pBitmap, int*, format:0)if IsObject(scale) {safe_w : (scale[1] ~ ^\d$) ? scale[1] : Round(width / height * scale[2])safe_h : (scale[2] ~ ^\d$) ? scale[2] : Round(height / width * scale[1])} else {safe_w : Ceil(width * scale)safe_h : Ceil(height * scale)}; Avoid drawing if no changes detected.if (safe_w width safe_h height)return pBitmap; Create a new bitmap and get the graphics context.DllCall(gdiplus\GdipCreateBitmapFromScan0, int, safe_w, int, safe_h, int, 0, int, format, ptr, 0, ptr*, pBitmapScale:0)DllCall(gdiplus\GdipGetImageGraphicsContext, ptr, pBitmapScale, ptr*, pGraphics:0); Set settings in graphics context.DllCall(gdiplus\GdipSetPixelOffsetMode, ptr, pGraphics, int, 2) ; Half pixel offset.DllCall(gdiplus\GdipSetCompositingMode, ptr, pGraphics, int, 1) ; Overwrite/SourceCopy.DllCall(gdiplus\GdipSetInterpolationMode, ptr, pGraphics, int, 7) ; HighQualityBicubic; Draw Image.DllCall(gdiplus\GdipCreateImageAttributes, ptr*, ImageAttr:0)DllCall(gdiplus\GdipSetImageAttributesWrapMode, ptr, ImageAttr, int, 3) ; WrapModeTileFlipXYDllCall(gdiplus\GdipDrawImageRectRectI, ptr, pGraphics, ptr, pBitmap, int, 0, int, 0, int, safe_w, int, safe_h ; destination rectangle, int, 0, int, 0, int, width, int, height ; source rectangle, int, 2, ptr, ImageAttr, ptr, 0, ptr, 0)DllCall(gdiplus\GdipDisposeImageAttributes, ptr, ImageAttr); Clean up the graphics context.DllCall(gdiplus\GdipDeleteGraphics, ptr, pGraphics)DllCall(gdiplus\GdipDisposeImage, ptr, pBitmap)return pBitmap : pBitmapScale};关闭GDIstatic close(){If (this.GdipToken) {DllCall(gdiplus\GdiplusShutdown, UInt, this.GdipToken)}DllCall(FreeLibrary, ptr, DllCall(GetModuleHandle, str, gdiplus, ptr))}
}
;----------------------------------------------------------------------------------------------------------image GDI工具类
;----------------------------------------------------------------------------------------------------------JSON工具类
;可以用于把comobject对象转换为ahk对象
class JSON2
{static uuidA:0763C49802734108979739D89C0CC7A4 . A_NowUTCstatic uuidB:C8C0655017FB428FB18EECF88E6E85CF . A_NowUTCstatic uuidC:08E3043B62324D0C8BDDB6A2A1DB4E6A . A_NowUTC;解析jsonstatic parse(str){str:inStr(str,\\)?strReplace(str,\\,this.uuidC):str ;替换 \\str:inStr(str,\)?strReplace(str,\,this.uuidA):str ;替换 \str:inStr(str,)?strReplace(str,,this.uuidB):str ;替换 return this.recurve(str)};Func 把对象转换为字符串static stringify(obj){return this.GetJS().JSON.stringify(obj)};递归解析jsonstatic recurve(str,recFlag:0){static eval : ObjBindMethod(this.GetJS(), eval)if not recFlag{obj: eval(Format((function(){objJSON.parse({1}{2}{3});tmpobj.length?:obj[keys]Object.keys(obj);return obj})(),,str,))return this.recurve(obj,1)}if(type(str)ComObject){if(str.hasOwnProperty(length)){ ;数组tmpArr:[]Loop str.length {if type(value:str.%A_index-1%)ComObjecttmpArr.push(this.recurve(this.recurve(this.stringify(value),0),1))elsetmpArr.push(this.recurve(value,1))}return tmpArr}else{ ;对象 注意js的下标是0开始tmpObject:{}Loop str.keys.length{key:str.keys.%A_index-1%if type(value:str.%key%)ComObject{tmpObject.%key%:this.recurve(this.recurve(this.stringify(value),0),1)}elsetmpObject.%key%:this.recurve(value,1) ;}return tmpObject}}else{ ;普通类型,可能是已经组装好的map或者是组装好的array
; msgBox type(str)if type(str)Object or type(str)Arrayreturn strstr:inStr(str,this.uuidA)?strReplace(str,this.uuidA,):strstr:inStr(str,this.uuidB)?strReplace(str,this.uuidB,):strstr:inStr(str,this.uuidC)?strReplace(str,this.uuidC,\):strreturn str}};获取JS对象static GetJS() {static document : , JSif !document {document : ComObject(HTMLFILE)document.write(meta http-equivX-UA-Compatible contentIE9)JS : document.parentWindow(document.documentMode 9 JS.execScript())}return JS}
}
;----------------------------------------------------------------------------------------------------------JSON工具类
;ak工具类class
class ak{static clipdataType:1;判断是否连接互联网static ConnectedToInternet(flag:0x40) {Return DllCall(Wininet.dll\InternetGetConnectedState, Str, flag,Int,0)};Func 显示网页 WB:activeX句柄 ,content:html内容,path:文件位置,timeout:300static display(WB,content:,path:,timeout:300){if not content and not paththrow Error(展示html时content和path同时为空)WB.silent : trueif(content and not path and count:1 ){while(FileExist(f:Format({1}\{2}{3}-tmp{4}DELETEME.html,A_Temp,A_TickCount,A_NowUTC,count)))count1FileAppend content,f}else if(path and not content)f:pathWB.Navigate(file:// . f)while((WB.readystate ! 4) and --timeout0)sleep 10return true};Func 处理在屏幕上显示的位置,返回图像所在x,ystatic dealshowGui(x,y,w,h,newX, newY,gap:5){newX:xwA_ScreenWidth-gap ? A_ScreenWidth-gap -w:x ;处理右边界newY:yhA_ScreenHeight-20?y-20-h:y ;处理下边界};Func frameShadow 窗口阴影static frameShadow(HGui){_MARGINS:Buffer(16)NumPut(UInt,0,_MARGINS,0),NumPut(UInt,0,_MARGINS,4),NumPut(UInt,1,_MARGINS,8),NumPut(UInt,0,_MARGINS,12)DllCall(dwmapi\DwmSetWindowAttribute, Ptr, HGui, UInt, 2, Int*, 2, UInt, 4)DllCall(dwmapi\DwmExtendFrameIntoClientArea, Ptr, HGui, Ptr, _MARGINS)};Func 获取请求头中的数据返回一个obj对象传入一个请求头 map{a:{value:hello,path:/ , expires:Sun, 22 Jan 2023 03:46:59 GMT,size:n},xx:xxx}static getHeaderObj(header){resobj:{},cookieobj:{},size:0Loop parse ,header, n {if A_loopField and index:inStr(A_loopField,:){key:trim(subStr(A_loopField,1,index-1))value:trim(subStr(A_loopField,index1))if(keySet-Cookie){lineobj:{} , cookieKey:for v in strSplit(value,;){if indexb:inStr(v,) {a:trim(subStr(v,1,indexb-1))b:trim(subStr(v,indexb1))A_index1 ?((lineobj.value:b)and (cookieKey:a)):(lineobj.%a%:b)}}cookieobj.%cookieKey%:lineobjsize1}cookieobj.size:sizeresobj.%key%:value}}resobj.cookie:cookieobjreturn resobj};Func 获取时间戳static getTimeStamp(){; datediff 计算现在的utc时间到unix时间戳的起始时间经过的秒数return DateDiff(A_NowUTC,19700101000000,S)*1000A_MSec}
}
;ak工具类class5、总结 和翻译原理一样也是爬取翻译网页界面不同的是这个ocr过程比较复杂需要请求各种网页得到cookie和一些标识码等、总之还是取之于互联网整合用于互联网不自己造轮子、
exe下载链接https://download.csdn.net/download/qq_34407846/88382059 上一篇 ahk系列——ahk_v2实现win10任意界面搜狗翻译