Code: Select all
' Функция конвертации Hex в Текст
Function HexToStr(ppText)
With AkelPad
Call .Command(4101)
WScript.Sleep 10
sText = RunScript(ppText, 42)
HexToStr = Left(sText, Len(sText))
Call .SendMessage(.GetEditWnd(), 3087, false, 0)
Call .SendMessage(.GetEditWnd(), 3079, 0, 0)
Call .Command(4318)
End With
End Function
' Функция конвертации Текст в Hex
Function StrToHex(ppText)
StrToHex = RunScript(ppText, 41)
End Function
Function RunScript(pText, hFlag)
With AkelPad
hWndEdit = .GetEditWnd()
If Len(hWndEdit) > 0 And Len(pText) > 0 Then
If X64 Then
mm = 112 : cc = 24 : vv = 48
Else
mm = 56 : cc = 12 : vv = 24
End If
lpSel = .MemAlloc(mm)
lpCaret = .MemAlloc(cc)
'Сохранить состояние
Call .SendMessage(hWndEdit, 3185, 3, true)
Call SetRedraw(hWndEdit, false)
Call .SendMessage(hWndEdit, 3125, lpCaret, lpSel)
Call .SetSel(0,0)
Call .ReplaceSel(pText, true)
Call .Call("HexSel::Main", 1, hFlag)
RunScript = .GetSelText()
Call .SendMessage(hWndEdit, 3077, 0, 0)
Call .SendMessage(hWndEdit, 3077, 0, 0)
'Восстановление состояния
dwFlags=.MemRead(lpSel + vv, 3)
Call .MemCopy(lpSel + vv, dwFlags, 3)
Call .SendMessage(hWndEdit, 3126, lpCaret, lpSel)
Call SetRedraw(hWndEdit, true)
Call .SendMessage(hWndEdit, 3185, 3, false)
Call .MemFree(lpCaret)
Call .MemFree(lpSel)
End If
End With
End Function
Function SetRedraw(hWnd, bRedraw)
With AkelPad
Call .SendMessage(hWnd, 11, bRedraw, 0)
if bRedraw Then Call .SystemFunction().Call("user32::InvalidateRect", hWnd, 0, true)
End With
End Function