Public Const BAIDU_APP_KEY = "XXXX " '百度申請後獲得。
公共類型MD5_CTX
dwNUMa壹樣長
dwNUMb As Long
以字節表示的緩沖區(15)
cIN(63)作為字節
cDig(15)作為字節
結束類型
-將上述內容放入課堂模塊。
公共聲明函數WideCharToMultiByte Lib " kernel 32 "(ByVal code page為Long、ByVal dwFlags為Long、ByVal lpWideCharStr為Long、ByVal cchWideChar為Long、ByRef lpMultiByteStr為Any、ByVal cchMultiByte為Long、ByVal lpDefaultChar為String、ByVal lpUsedDefaultChar為Long)
公共聲明Sub MD5 final Lib“advapi 32”(LP context As MD5 _ CTX)
公共聲明Sub MD5 init Lib“advapi 32”(LP context As MD5 _ CTX)
public Declare Sub MD5 update Lib“advapi 32”(LP context為MD5_CTX,ByRef lpBuffer為Any,ByVal BufSize為Long)
公共函數Translate(ByVal文本為字符串,可選ByVal源為String = "auto ",可選ByVal目標為String = "auto ",可選ByVal AppID為String = BAIDU_APP_ID,可選ByVal Key為String = BAIDU_APP_KEY)為字符串
Dim XML作為對象,stcContext作為MD5_CTX,URL作為字符串,PostData作為字符串,Salt作為字符串
Dim Arr()為字節,I為長整型,結果為字符串
URL = "/api/trans/vip/translate "
使不規則化
Salt = Replace(Rnd," ", "")
MD5Init stcContext
PostData = " q = " & amp文本
PostData = PostData & amp“& ampappid = " & ampAppID
PostData = PostData & amp“& ampsalt = " & amp鹽
PostData = PostData & amp“& ampfrom = " & amp來源
PostData = PostData & amp“& ampto = " & amp目標
PostData = PostData & amp“& amp符號= "
I = Len(AppID & amp;文本& amp鹽& amp關鍵)
ReDim Arr(I * 3)
I = WideCharToMultiByte(65001,0,StrPtr(AppID & amp;文本& amp鹽& ampKey),I,Arr(0),I * 3 + 1,vbNullString,0)
如果我& lt1然後退出功能
MD5Update stcContext,Arr(0),I
MD5最終stcContext
對於I = 0至UBound(stcContext.cDig)
PostData = PostData & ampLCase(IIf(STC context . cdig(I)& lt;16," 0 "Hex(stcContext.cDig(I))、Hex(stcContext.cDig(I)))
然後
Set XML = CreateObject("WinHttp。WinHttpRequest.5.1 ")
XML。選項(6) =假
XML。選項(4) = 13056
XML。打開“帖子”,網址
XML。SetRequestHeader "Content-Type "," application/x-www-form-urlencoded "
XML。SetRequestHeader " Content-lent ",LenB(StrConv(PostData,vbFromUnicode))
XML。發送PostData
PostData = XML。響應文本
設置XML =無
I = InStr(PostData,“錯誤代碼”)
如果我& gt那麽0
Result = "錯誤代碼:" &;Mid(PostData,I + 13,InStr(I + 13,PostData," " " "- I - 13)
I = InStr(PostData," error_msg ")
結果=結果& amp”,描述:“&;Mid(PostData,I + 12,InStr(I + 12,PostData," " " "- I - 12)
其他
I = 1
PostData = Replace(PostData," \ " " "," \ ' ")
Do直到InStr(I,PostData," " " dst " ":" ")= 0
I = InStr(I,PostData," " " dst " ":" ")+7
Result = IIf(Len(Result) = 0,"",Result & ampvbCrLf)& amp;Mid(PostData,I,InStr(I,PostData," " " "- I)
環
Result = Replace(Result," \ ' ","""")
ReDim Arr(1)
Do直到InStr(Result," \u") = 0
I = InStr(結果,“\u”)
Result = Replace(Result,Mid(Result,I,6),ChrW(& amp;H " & ampMid(結果,I + 2,4)))
環
如果…就會結束
翻譯=結果
結束功能
調用:text 1 = translate(" Hello World!")
應用程序ID和密鑰地址: