Advertisement
AZJIO

Кодировать / Декодировать

Oct 17th, 2011
372
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 4.64 KB | None | 0 0
  1. #include <Crypt.au3>
  2. #include <WindowsConstants.au3>
  3. #include <GUIConstantsEx.au3>
  4.  
  5. ; En
  6. $LngEnc = 'Encrypt'
  7. $LngDec = 'Decrypt'
  8. $LngEnPs = 'Enter the password'
  9. $LngEnPt = 'Enter the path or drag a file into the input field'
  10. $LngSet1 = 'Disabled'
  11. $LngSet2 = 'Auto Encoding'
  12. $LngSet3 = 'Auto decoding'
  13. $LngMs1 = 'Message'
  14. $LngMs2 = 'The path does not exist'
  15. $LngMs3 = 'No password'
  16. $LngNFL='In a new file'
  17. $LngScf='Successfully'
  18. $LngFlr='Failure'
  19.  
  20. $UserIntLang = DllCall('kernel32.dll', 'int', 'GetUserDefaultUILanguage')
  21. If Not @error Then $UserIntLang = Hex($UserIntLang[0], 4)
  22.  
  23. ; Ru
  24. ; если русская локализация, то русский язык
  25. If $UserIntLang = 0419 Then
  26.     $LngEnc = 'Кодировать'
  27.     $LngDec = 'Декодировать'
  28.     $LngEnPs = 'Введите пароль'
  29.     $LngEnPt = 'Введите путь или перетащите файл в поле ввода'
  30.     $LngSet1 = 'Отключено'
  31.     $LngSet2 = 'Автокодирование'
  32.     $LngSet3 = 'Автодекодирование'
  33.     $LngMs1 = 'Сообщение'
  34.     $LngMs2 = 'Путь не существует'
  35.     $LngMs3 = 'Отсутствует пароль'
  36.     $LngNFL='В новый файл'
  37.     $LngScf='Успешно'
  38.     $LngFlr='Неудачно'
  39. EndIf
  40.  
  41. Global $LastPath=''
  42.  
  43. $Gui = GUICreate($LngEnc & ' / ' & $LngDec, 350, 110, -1, -1, -1, $WS_EX_ACCEPTFILES)
  44. If Not @compiled Then GUISetIcon('shell32.dll', 48)
  45. $StatusBar=GUICtrlCreateLabel('', 160, 60, 150, 17)
  46.  
  47. $NewFile = GUICtrlCreateCheckbox($LngNFL, 10, 60, 120, 17)
  48. GUICtrlSetState(-1, 1)
  49.  
  50. $Open = GUICtrlCreateButton('...', 313, 30, 26, 23)
  51. GUICtrlSetFont(-1, 16)
  52.  
  53. $key = GUICtrlCreateInput($LngEnPs, 10, 5, 330, 22)
  54. GUICtrlSetFont(-1, -1, -1, 2)
  55. $Path = GUICtrlCreateInput($LngEnPt, 10, 30, 304, 22)
  56. GUICtrlSetState(-1, $GUI_DROPACCEPTED)
  57. GUICtrlSetFont(-1, -1, -1, 2)
  58.  
  59. $Auto = GUICtrlCreateCombo('', 10, 80, 140, 23, 0x3)
  60. GUICtrlSetData(-1, $LngSet1 & '|' & $LngSet2 & '|' & $LngSet3, $LngSet1)
  61.  
  62. $enc = GUICtrlCreateButton($LngEnc, 160, 80, 80, 24)
  63. $dec = GUICtrlCreateButton($LngDec, 250, 80, 90, 24)
  64.  
  65. GUISetState()
  66. GUIRegisterMsg(0x0111, "WM_COMMAND")
  67. _Crypt_Startup()
  68.  
  69. While 1
  70.     $msg = GUIGetMsg()
  71.     Switch $msg
  72.         Case -13
  73.             If @GUI_DropId = $Path Then GUICtrlSetData($Path, @GUI_DragFile)
  74.             Switch GUICtrlRead($Auto)
  75.                 Case $LngSet2
  76.                     _Enc(1)
  77.                 Case $LngSet3
  78.                     _Enc(0)
  79.             EndSwitch
  80.         Case $enc
  81.             _Enc(1)
  82.         Case $dec
  83.             _Enc(0)
  84.         Case $Open
  85.             If $LastPath='' Then $LastPath=@DesktopDir
  86.             $OpenFile = FileOpenDialog('', $LastPath , '(*.*)', 3, '', $Gui)
  87.             If @error Then ContinueLoop
  88.             GUICtrlSetFont($Path, -1, -1, 0)
  89.             GUICtrlSetData($Path, $OpenFile)
  90.             $LastPath=StringLeft($OpenFile, StringInStr($OpenFile, "\", 0, -1)-1)
  91.             Switch GUICtrlRead($Auto)
  92.                 Case $LngSet2
  93.                     _Enc(1)
  94.                 Case $LngSet3
  95.                     _Enc(0)
  96.             EndSwitch
  97.         Case -3
  98.             _Crypt_Shutdown()
  99.             Exit
  100.     EndSwitch
  101. WEnd
  102.  
  103. Func _Enc($type)
  104.     Local $aPath, $ED, $i, $key0, $n, $NewFile, $Path0, $PathN
  105.     $key0 = GUICtrlRead($key)
  106.     $Path0 = GUICtrlRead($Path)
  107.    
  108.     If Not FileExists($Path0) Then Return MsgBox(0, $LngMs1, $LngMs2)
  109.     If $key0 = '' Then Return MsgBox(0, $LngMs1, $LngMs3)
  110.    
  111.     If $type Then
  112.         $ED = 'E'
  113.     Else
  114.         $ED = 'D'
  115.     EndIf
  116.    
  117.     $aPath = StringRegExp($Path0, '^(.*\\[^\\]*?)(\.[^.]+)?$', 3)
  118.     $n = UBound($aPath)
  119.     $i = 0
  120.     Do
  121.         $i += 1
  122.         If $n = 2 Then
  123.             $PathN = $aPath[0] & '_' & $i & $ED & '.' & $aPath[1]
  124.         Else
  125.             $PathN = $aPath[0] & '_' & $i & $ED
  126.         EndIf
  127.     Until Not FileExists($PathN)
  128.    
  129.     If $type Then
  130.         $yes=_Crypt_EncryptFile($Path0, $PathN, $key0, $CALG_RC4)
  131.     Else
  132.         $yes=_Crypt_DecryptFile($Path0, $PathN, $key0, $CALG_RC4)
  133.     EndIf
  134.    
  135.     If GUICtrlRead($NewFile)=4 Then
  136.         If $yes And FileMove($PathN, $Path0, 9) Then
  137.             $i=$LngScf
  138.         Else
  139.             $i=$LngFlr
  140.         EndIf
  141.     Else
  142.         If $yes Then
  143.             $i=$LngScf
  144.         Else
  145.             $i=$LngFlr
  146.         EndIf
  147.     EndIf
  148.     GUICtrlSetData($StatusBar, $i)
  149.     AdlibRegister('_StatusBarAR', 2000)
  150. EndFunc
  151.  
  152. Func _StatusBarAR()
  153.     GUICtrlSetData($StatusBar, '')
  154.     AdlibUnRegister('_StatusBarAR')
  155. EndFunc
  156.  
  157. Func WM_COMMAND($hWnd, $msg, $wParam, $lParam)
  158.     Local $nID = BitAND($wParam, 0x0000FFFF)
  159.  
  160.     Switch $nID
  161.         Case $key
  162.             Switch GUICtrlRead($nID, 1)
  163.                 Case $LngEnPs
  164.                     GUICtrlSetData($nID, '')
  165.                     GUICtrlSetFont($nID, -1, -1, 0)
  166.                 Case ''
  167.                     GUICtrlSetData($nID, $LngEnPs)
  168.                     GUICtrlSetFont($nID, -1, -1, 2)
  169.             EndSwitch
  170.         Case $Path
  171.             Switch GUICtrlRead($nID, 1)
  172.                 Case $LngEnPt
  173.                     GUICtrlSetData($nID, '')
  174.                     GUICtrlSetFont($nID, -1, -1, 0)
  175.                 Case ''
  176.                     GUICtrlSetData($nID, $LngEnPt)
  177.                     GUICtrlSetFont($nID, -1, -1, 2)
  178.             EndSwitch
  179.     EndSwitch
  180.     Return 'GUI_RUNDEFMSG'
  181. EndFunc
  182.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement