Advertisement
appo

Winlocker 01-03-2014

Mar 1st, 2014
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 17.86 KB | None | 0 0
  1. #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
  2. #AutoIt3Wrapper_OutFile=Desktop_Locker.exe
  3. #AutoIt3Wrapper_icon=Desktop_Locker.ico
  4. #AutoIt3Wrapper_Compression=4
  5. #AutoIt3Wrapper_UseAnsi=y
  6. #AutoIt3Wrapper_Res_Comment=-
  7. #AutoIt3Wrapper_Res_Description=Desktop_Locker.exe
  8. #AutoIt3Wrapper_Res_Fileversion=0.2.0.0
  9. #AutoIt3Wrapper_Res_Fileversion_AutoIncrement=n
  10. #AutoIt3Wrapper_Res_LegalCopyright=AZJIO
  11. #AutoIt3Wrapper_Res_Language=1049
  12. #AutoIt3Wrapper_Run_AU3Check=n
  13. #AutoIt3Wrapper_Run_Obfuscator=y
  14. #Obfuscator_Parameters=/sf /sv /om /cs=0 /cn=0
  15. #AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_Obfuscated.au3"
  16. #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
  17.  
  18. ;  @AZJIO 8.05.2011  (AutoIt3_v3.3.6.1)
  19. ; HotKeySet("{ESC}", "_Exit")
  20. ; Func _Exit()
  21.     ; Exit
  22. ; EndFunc
  23.  
  24. #NoTrayIcon
  25. #include <WindowsConstants.au3>
  26. #include <GUIConstantsEx.au3>
  27. #include <ComboConstants.au3>
  28. #Include <String.au3>
  29. #Include <Array.au3>
  30.  
  31. Global Const $ES_CENTER = 1
  32. Global Const $ES_PASSWORD = 32
  33. Global Const $tagRECT = "long Left;long Top;long Right;long Bottom"
  34.  
  35. Global $Password='', $k=0, $aSet, $Gui1, $ValSld
  36. Global $DW=@DesktopWidth, $DH=@DesktopHeight
  37.  
  38. ; En
  39. $LngTitle='Desktop Locker'
  40. $LngAbout='About'
  41. $LngVer='Version'
  42. $LngCopy='Copy'
  43. $LngSite='Site'
  44. $LngLDP='Desktop Locker'
  45. $LngPsw='Password to unlock'
  46. $LngChB='Hide password'
  47. ; $LngMs1='You want to lock the screen?'
  48. $LngErPw1='The password is incorrect ..try again.'
  49. $LngErPw2='Please enter a password to unlock the screen'&@CRLF&'and press Enter.'
  50. $LngERe='Display output and restart'
  51. $LngDly='Delay'
  52. $LngMsB='Block mouse'
  53. $LngTrn='Transparency'
  54. $LngDsc='Desktop'
  55. $LngQLn='Quick Launch'
  56. $LngMPr='Main Menu'
  57. $LngLnk='Shortcut on'
  58. $LngSTp='Lock desktop with password'
  59. $LngLnkH='Create a shortcut with an encrypted password'
  60. $LngRgt='Startup'
  61. $LngRgtH='Losing a password will require professional help'
  62. $LngMs2='Message'
  63. $LngMs3='The key in the registry is missing, perhaps not right to write to the registry'
  64. $LngMs4='Key successfully added'
  65. $LngMs5='The key was successfully removed'
  66. $LngMs6='The key is exists, maybe not the right to delete'
  67. $LngErr='Error'
  68.  
  69. $Lang_dll = DllOpen("kernel32.dll")
  70. $UserIntLang=DllCall ( $Lang_dll, "int", "GetUserDefaultUILanguage" )
  71. If Not @error Then $UserIntLang=Hex($UserIntLang[0],4)
  72. DllClose($Lang_dll)
  73.  
  74. ; Ru
  75. ; если русская локализация, то русский язык
  76. If $UserIntLang = 0419 Then
  77.     ; $LngTitle='Desktop Locker'
  78.     $LngAbout='О программе'
  79.     $LngVer='Версия'
  80.     $LngCopy='Копировать'
  81.     $LngSite='Сайт'
  82.     $LngLDP='Заблокировать рабочий стол'
  83.     $LngPsw='Пароль для разблокировки'
  84.     $LngChB='Скрыть пароль'
  85.     ; $LngMs1='Вы хотите заблокировать просмотр и управление Рабочего стола?'
  86.     $LngErPw1='Пароль неверный, попробуйте снова.'
  87.     $LngErPw2='Пожалуйста, введите пароль для разблокировки экрана'&@CRLF&'и нажмите Enter.'
  88.     $LngERe='Отображать выход и перезагрузка'
  89.     $LngDly='Задержка'
  90.     $LngMsB='Блокировать мышь'
  91.     $LngTrn='Прозрачность'
  92.     $LngDsc='Рабочий стол'
  93.     $LngQLn='Быстрый запуск'
  94.     $LngMPr='Главное меню'
  95.     $LngLnk='Ярлык на'
  96.     $LngSTp='Заблокировать рабочий стол с паролем'
  97.     $LngLnkH='Создать ярлык с шифрованным паролем'
  98.     $LngRgt='Автозагрузка'
  99.     $LngRgtH='Потеря пароля потребует помощи профессионала'
  100.     $LngMs2='Сообщение'
  101.     $LngMs3='Ключ в реестре отсутствует, возможно нет прав на запись в реестр'
  102.     $LngMs4='Ключ успешно добавлен'
  103.     $LngMs5='Ключ успешно удалён'
  104.     $LngMs6='Ключ существует, возможно нет прав на удаление'
  105.     $LngErr='Ошибка'
  106. EndIf
  107.  
  108. Global $Ini = @ScriptDir & '\DesktopLocker.ini'
  109. If Not FileExists($Ini) And DriveStatus(StringLeft(@ScriptDir, 1))<>'NOTREADY' Then
  110.     _FileW()
  111. EndIf
  112.  
  113. Func _FileW($i='1|0|0|1|255')
  114.     $file = FileOpen($Ini,2)
  115.     FileWrite($file, $i)
  116.     FileClose($file)
  117. EndFunc
  118.  
  119. Func _MsgFile()
  120.     $file = FileOpen($Ini, 0)
  121.     $Initext = FileRead($file)
  122.     FileClose($file)
  123.     $aSet = StringSplit($Initext, '|')
  124.     If $aSet[0]<>5 Then
  125.         $Initext='1|0|0|1|255'
  126.         _FileW($Initext)
  127.         $aSet = StringSplit($Initext, '|')
  128.     EndIf
  129.     Local $ChPsHd, $Inp0, $Inp1, $Inp2, $msg, $OK, $Password=''
  130.     $Gui1 = GUICreate($LngLDP, 290, 270, -1, -1, $WS_CAPTION+$WS_SYSMENU)
  131.     If Not @compiled Then GUISetIcon(@ScriptDir&'\Desktop_Locker.ico')
  132.    
  133.     GUICtrlCreateGroup($LngPsw, 5, 5, 200, 72)
  134.     ; GUICtrlCreateLabel($LngPsw, 10, 13, 190, 17)
  135.     $Inp1=GUICtrlCreateInput('', 10, 25, 190, 22)
  136.     $Inp2=GUICtrlCreateInput('', 10, 25, 190, 22, $ES_PASSWORD)
  137.     $ChPsHd=GUICtrlCreateCheckbox($LngChB, 10, 55, 170, 15)
  138.     If $aSet[1] = $GUI_CHECKED Then
  139.         GUICtrlSetState($Inp2, $GUI_FOCUS)
  140.         GUICtrlSetState($Inp1, $GUI_HIDE)
  141.         $Inp0=$Inp2
  142.         GUICtrlSetState($ChPsHd, $GUI_CHECKED)
  143.     Else
  144.         GUICtrlSetState($Inp1, $GUI_FOCUS)
  145.         GUICtrlSetState($Inp2, $GUI_HIDE)
  146.         $Inp0=$Inp1
  147.         GUICtrlSetState($ChPsHd, $GUI_UNCHECKED)
  148.     EndIf
  149.    
  150.     GUICtrlCreateGroup('', 5, 78, 200, 79)
  151.     $ShtDwn=GUICtrlCreateCheckbox($LngERe, 10, 90, 190, 15)
  152.     If $aSet[2]=$GUI_CHECKED Then GUICtrlSetState(-1, 1)
  153.     $DelayL=GUICtrlCreateLabel($LngDly&' :', 10, 113, 70, 17)
  154.     $Delay=GUICtrlCreateCombo('', 80, 110, 60)
  155.     GUICtrlSetData(-1,'0|1|10|30|60|120', '0')
  156.     GUICtrlSetData(-1,$aSet[3], $aSet[3])
  157.     $MsBloc=GUICtrlCreateCheckbox($LngMsB, 10, 137, 190, 15)
  158.     If $aSet[4]=$GUI_CHECKED Then
  159.         GUICtrlSetState($MsBloc, $GUI_CHECKED)
  160.     Else
  161.         GUICtrlSetState($MsBloc, $GUI_UNCHECKED)
  162.     EndIf
  163.     $About=GUICtrlCreateButton('@', 235, 30, 30, 30)
  164.     GUICtrlSetTip(-1, $LngAbout)
  165.     GUICtrlSetFont(-1,13)
  166.     GUICtrlCreateIcon ("shell32.dll", 48, 230, 91, 48, 48)
  167.    
  168.     $OK=GUICtrlCreateButton('OK', 215, 190, 60, 50)
  169.     GUICtrlSetState(-1, $GUI_DEFBUTTON)
  170.     GUICtrlSetFont(-1,13)
  171.     If GUICtrlRead($ShtDwn)=4 Then
  172.         GUICtrlSetState($Delay, $GUI_DISABLE)
  173.         GUICtrlSetState($DelayL, $GUI_DISABLE)
  174.     EndIf
  175.    
  176.     GUICtrlCreateGroup($LngTrn, 5, 159, 200, 50)
  177.     $slider1 = GUICtrlCreateSlider(6, 173, 163, 30)
  178.     GUICtrlSetLimit(-1, 100, 0)
  179.     GUICtrlSetTip(-1, $LngTrn)
  180.     GUICtrlSetData(-1, 255-$aSet[5])
  181.     $ValSld=GUICtrlCreateLabel(255-$aSet[5], 169, 178, 30, 17)
  182.     GUICtrlSetFont(-1,12)
  183.     WinSetTrans($Gui1,"",$aSet[5])
  184.    
  185.     GUICtrlCreateLabel($LngLnk&' :', 10, 218, 60, 17)
  186.     $LinkCombo=GUICtrlCreateCombo('', 65, 215, 112, 22, $CBS_DROPDOWNLIST)
  187.     GUICtrlSetData(-1, $LngDsc&'|'&$LngQLn&'|'&$LngMPr, $LngDsc)
  188.     $CreateLnk=GUICtrlCreateButton('>', 180, 215, 22, 24)
  189.     GUICtrlSetTip(-1, $LngLnkH)
  190.    
  191.     $Registry=GUICtrlCreateCheckbox($LngRgt, 10, 245, 180, 15)
  192.     GUICtrlSetTip(-1, $LngRgtH)
  193.     RegRead("HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", 'Desktop_Locker_456')
  194.     If Not @Error Then GUICtrlSetState($Registry, $GUI_CHECKED)
  195.    
  196.     GUISetState()
  197.     While 1
  198.         $msg = GUIGetMsg()
  199.         Switch $msg
  200.             Case $Registry ; Автозагрузка
  201.                 If GUICtrlRead($Registry)=$GUI_CHECKED Then
  202.                     $Password = GUICtrlRead($Inp0)
  203.                     If $Password = '' Then
  204.                         GUICtrlSetState($Registry, $GUI_UNCHECKED)
  205.                         _ColorError($Inp0)
  206.                         GUICtrlSetState($Inp0, $GUI_FOCUS)
  207.                         ContinueLoop
  208.                     EndIf
  209.                
  210.                     $aSet[3] = GUICtrlRead($Delay)
  211.                     $aSet[4] = GUICtrlRead($MsBloc)
  212.                     $aSet[5]=255-GUICtrlRead($slider1)
  213.                     $Initext=$aSet[1]&'|'&$aSet[2]&'|'&$aSet[3]&'|'&$aSet[4]&'|'&$aSet[5]
  214.                
  215.                     $bEncrypted = _StringEncrypt(1, $Password, $Password)&'J'&_StringEncrypt(1, $Initext, 'dk3wo6e9ru')
  216.                     RegWrite("HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", 'Desktop_Locker_456', "REG_SZ", '"'&@ScriptFullPath&'" '&$bEncrypted)
  217.                     RegRead("HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", 'Desktop_Locker_456')
  218.                     If @Error Then
  219.                         MsgBox(0, $LngErr, $LngMs3)
  220.                         GUICtrlSetState($Registry, $GUI_UNCHECKED)
  221.                     Else
  222.                         MsgBox(0, $LngMs2, $LngMs4)
  223.                     EndIf
  224.                 Else
  225.                     RegDelete("HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", 'Desktop_Locker_456')
  226.                     RegRead("HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", 'Desktop_Locker_456')
  227.                     If @Error Then
  228.                         MsgBox(0, $LngMs2, $LngMs5)
  229.                     Else
  230.                         MsgBox(0, $LngErr, $LngMs6)
  231.                         GUICtrlSetState($Registry, $GUI_CHECKED)
  232.                     EndIf
  233.                 EndIf
  234.             Case $CreateLnk ; создание ярлыка
  235.                 $Password = GUICtrlRead($Inp0)
  236.                 If $Password = '' Then
  237.                     _ColorError($Inp0)
  238.                     GUICtrlSetState($Inp0, $GUI_FOCUS)
  239.                     ContinueLoop
  240.                 EndIf
  241.                
  242.                 $aSet[3] = GUICtrlRead($Delay)
  243.                 $aSet[4] = GUICtrlRead($MsBloc)
  244.                 $aSet[5]=255-GUICtrlRead($slider1)
  245.                 $Initext=$aSet[1]&'|'&$aSet[2]&'|'&$aSet[3]&'|'&$aSet[4]&'|'&$aSet[5]
  246.                
  247.                 $bEncrypted = _StringEncrypt(1, $Password, $Password)&'J'&_StringEncrypt(1, $Initext, 'dk3wo6e9ru')
  248.                 Switch GUICtrlRead($LinkCombo)
  249.                     Case $LngDsc
  250.                         $PathLnk=@DesktopDir & "\Desktop_Locker.lnk"
  251.                     Case $LngQLn
  252.                         $PathLnk=@AppDataDir&'\Microsoft\Internet Explorer\Quick Launch\Desktop_Locker.lnk'
  253.                     Case $LngMPr
  254.                         $PathLnk=@ProgramsDir & "\Desktop_Locker.lnk"
  255.                 EndSwitch
  256.                 FileCreateShortcut(@ScriptDir & "\Desktop_Locker.exe", $PathLnk, @ScriptDir, $bEncrypted, $LngSTp, @ScriptDir & "\Desktop_Locker.exe")
  257.             Case $MsBloc, $Delay
  258.                 GUICtrlSetState($Inp0, $GUI_FOCUS)
  259.             Case $OK ; Заблокировать рабочий стол
  260.                 $Password = GUICtrlRead($Inp0)
  261.                 If $Password = '' Then
  262.                     _ColorError($Inp0)
  263.                     GUICtrlSetState($Inp0, $GUI_FOCUS)
  264.                     ContinueLoop
  265.                 EndIf
  266.                 $Password=_StringEncrypt(1, $Password, $Password)
  267.                 $aSet[3] = GUICtrlRead($Delay)
  268.                 $aSet[4] = GUICtrlRead($MsBloc)
  269.                 $aSet[5]=255-GUICtrlRead($slider1)
  270.                 $Initext1=$aSet[1]&'|'&$aSet[2]&'|'&$aSet[3]&'|'&$aSet[4]&'|'&$aSet[5]
  271.                 If $Initext1<>$Initext Then _FileW($Initext1)
  272.                 GUIDelete($Gui1)
  273.                 ExitLoop
  274.             Case $ShtDwn
  275.                 If GUICtrlRead($ShtDwn)=$GUI_CHECKED Then
  276.                     $stt=$GUI_ENABLE
  277.                     $aSet[2]=$GUI_CHECKED
  278.                 Else
  279.                     $stt=$GUI_DISABLE
  280.                     $aSet[2]=$GUI_UNCHECKED
  281.                 EndIf
  282.                 GUICtrlSetState($Delay, $stt)
  283.                 GUICtrlSetState($DelayL, $stt)
  284.                 GUICtrlSetState($Inp0, $GUI_FOCUS)
  285.             Case $ChPsHd
  286.                 If GUICtrlRead($ChPsHd)=$GUI_CHECKED Then
  287.                     GUICtrlSetData($Inp2,GUICtrlRead($Inp1))
  288.                     GUICtrlSetState($Inp2, $GUI_SHOW)
  289.                     GUICtrlSetState($Inp1, $GUI_HIDE)
  290.                     $Inp0=$Inp2
  291.                     $aSet[1]=$GUI_CHECKED
  292.                 Else
  293.                     GUICtrlSetData($Inp1,GUICtrlRead($Inp2))
  294.                     GUICtrlSetState($Inp1, $GUI_SHOW)
  295.                     GUICtrlSetState($Inp2, $GUI_HIDE)
  296.                     $Inp0=$Inp1
  297.                     $aSet[1]=$GUI_UNCHECKED
  298.                 EndIf
  299.                 GUICtrlSetState($Inp0, $GUI_FOCUS)
  300.             Case $About
  301.                _About()
  302.             Case -3
  303.                 Exit
  304.         EndSwitch
  305.     WEnd
  306.     Return $Password
  307. EndFunc
  308.  
  309. GUIRegisterMsg(0x0114 , "WM_HSCROLL")
  310.  
  311. If $CmdLine[0]>0 Then
  312.     $aTmp =  StringSplit($CmdLine[1], 'J')
  313.     If @error Or $aTmp[0]<>2 Then
  314.         MsgBox(0, $LngErr, $LngErr)
  315.         Exit
  316.     EndIf
  317.     $Password =  $aTmp[1]
  318.     $bEncrypted = _StringEncrypt(0, $aTmp[2], 'dk3wo6e9ru')
  319.     $aSet =  StringSplit($bEncrypted, '|')
  320.     If $aSet[0]<>5 Then
  321.         $Initext='1|0|0|1|255'
  322.         $aSet = StringSplit($Initext, '|')
  323.     EndIf
  324. Else
  325.     $Password = _MsgFile()
  326. EndIf
  327.  
  328. HotKeySet('{ENTER}', '_Enter')
  329.  
  330. $GuiLocked = GUICreate($LngTitle, $DW, $DH, 0, 0, $WS_POPUP, $WS_EX_TOPMOST)
  331. GUISetBkColor (0x0)
  332.  
  333. GUICtrlCreateIcon ("shell32.dll", 48, $DW / 2 - 16, $DH / 2-190, 48, 48)
  334.  
  335. GUISetFont(12, 800)
  336. $WrongPw = GUICtrlCreateLabel("", $DW / 2+155, $DH / 2 - 115, 30, 20)
  337. GUICtrlSetColor(-1, 0xFF0000)
  338. GUICtrlSetBkColor(-1, 0x0)
  339.  
  340. GUICtrlCreateLabel($LngTitle, $DW / 2 - 150, $DH / 2 - 105, 300, 50, $ES_CENTER)
  341. GUICtrlSetFont(-1, 30, 800)
  342. _Color(-1)
  343.  
  344. GUICtrlCreateLabel($LngErPw2, $DW / 2 - 230, $DH / 2 - 50, 460, 40, $ES_CENTER)
  345. _Color(-1)
  346.  
  347. $InputPw = GUICtrlCreateInput("", $DW / 2 - 100, $DH / 2 , 200, 20, BitOR($ES_CENTER, $ES_PASSWORD), 0)
  348. _Color(-1)
  349. GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
  350. GUICtrlSetState(-1, $GUI_FOCUS)
  351.  
  352. $ShtDw=GUICtrlCreateButton('1', $DW-200, $DH-100, 36, 32, 0x0040)
  353. GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 28, 1)
  354. GUICtrlSetState(-1, $GUI_HIDE)
  355. $ShtRe=GUICtrlCreateButton('1', $DW-140, $DH-97, 36, 26, 0x0040)
  356. GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', -113, 1)
  357. GUICtrlSetState(-1, $GUI_HIDE)
  358.  
  359. If $aSet[2]=$GUI_CHECKED Then
  360.     If $aSet[3]=0 Then
  361.         _Button()
  362.     Else
  363.         AdlibRegister('_Delay', $aSet[3]*60000)
  364.     EndIf
  365. EndIf
  366.  
  367. WinSetState("[CLASS:Shell_TrayWnd]", "", @SW_HIDE)
  368. WinSetTrans($GuiLocked, '', $aSet[5])
  369. GUISetState(@SW_SHOW, $GuiLocked)
  370. If $aSet[4] = 1 Then _MouseTrap($DW, $DH)
  371.  
  372. While 1
  373.     Sleep(50)
  374.     $msg = GUIGetMsg()
  375.     If Not WinActive($GuiLocked) Then
  376.         If ProcessExists('taskmgr.exe') Then ProcessClose('taskmgr.exe')
  377.         WinActivate($GuiLocked)
  378.         If $aSet[4] = 1 Then _MouseTrap($DW, $DH)
  379.     EndIf
  380.     Switch $msg
  381.         Case $ShtDw
  382.            Shutdown(1)
  383.         Case $ShtRe
  384.            Shutdown(2)
  385.     EndSwitch
  386. WEnd
  387.  
  388. Func _ColorError($Inp0)
  389.     For $i = 1 to 4
  390.         GUICtrlSetBkColor ($Inp0, 0xff0000)
  391.         Sleep(40)
  392.         GUICtrlSetBkColor ($Inp0, -1 )
  393.         Sleep(40)
  394.     Next
  395. EndFunc
  396.  
  397. Func _Enter()
  398.     $tmp=GUICtrlRead($InputPw)
  399.     If _StringEncrypt(0, $Password, $tmp) == $tmp Then
  400.         WinSetState("[CLASS:Shell_TrayWnd]", "", @SW_SHOW)
  401.         If $aSet[4] = 1 Then _MouseTrap()
  402.         Exit
  403.     Else
  404.         $k+=1
  405.         GUICtrlSetData($WrongPw, $k)
  406.         GUICtrlSetData($InputPw, "")
  407.         AdlibRegister('_Tip', 50)
  408.     EndIf
  409. EndFunc
  410.  
  411. Func _Delay()
  412.     AdlibUnRegister('_Delay')
  413.     _Button()
  414. EndFunc
  415.  
  416. Func _Button()
  417.     GUICtrlSetState($ShtDw, $GUI_SHOW)
  418.     GUICtrlSetState($ShtRe, $GUI_SHOW)
  419. EndFunc
  420.  
  421. Func _Color($i)
  422.     GUICtrlSetColor($i, 0xFFFFFF)
  423.     GUICtrlSetBkColor($i, 0)
  424. EndFunc
  425.  
  426. Func _Tip()
  427.     AdlibUnRegister('_Tip')
  428.     ToolTip($LngErPw1, $DW/2, $DH/2+20, "", 3, 3)
  429.     Sleep(2000)
  430.     ToolTip("")
  431. EndFunc
  432.  
  433. ; UDF GuiEdit.au3 + Misc.au3
  434.  
  435. Func _MouseTrap($iLeft = 0, $iTop = 0, $iRight = 0, $iBottom = 0)
  436.     Local $aResult
  437.     If @NumParams == 0 Then
  438.         $aResult = DllCall("user32.dll", "bool", "ClipCursor", "ptr", 0)
  439.         If @error Or Not $aResult[0] Then Return SetError(1, _WinAPI_GetLastError(), False)
  440.     Else
  441.         If @NumParams == 2 Then
  442.             $iRight = $iLeft + 1
  443.             $iBottom = $iTop + 1
  444.         EndIf
  445.         Local $tRect = DllStructCreate($tagRECT)
  446.         DllStructSetData($tRect, "Left", $iLeft)
  447.         DllStructSetData($tRect, "Top", $iTop)
  448.         DllStructSetData($tRect, "Right", $iRight)
  449.         DllStructSetData($tRect, "Bottom", $iBottom)
  450.         $aResult = DllCall("user32.dll", "bool", "ClipCursor", "ptr", DllStructGetPtr($tRect))
  451.         If @error Or Not $aResult[0] Then Return SetError(2, _WinAPI_GetLastError(), False)
  452.     EndIf
  453.     Return True
  454. EndFunc   ;==>_MouseTrap
  455.  
  456. Func _WinAPI_GetLastError($curErr = @error, $curExt = @extended)
  457.     Local $aResult = DllCall("kernel32.dll", "dword", "GetLastError")
  458.     Return SetError($curErr, $curExt, $aResult[0])
  459. EndFunc   ;==>_WinAPI_GetLastError
  460.  
  461. Func WM_HSCROLL($hWnd, $Msg, $wParam, $lParam)
  462.     #forceref $Msg, $wParam, $lParam
  463.     Local $nScrollCode = BitAND($wParam, 0x0000FFFF)
  464.     $aSet[5] = 255-BitShift($wParam, 16)
  465.     If $nScrollCode = 5 Then
  466.         WinSetTrans($Gui1,"",$aSet[5])
  467.         GUICtrlSetData($ValSld, 255-$aSet[5])
  468.     EndIf
  469.     Return 'GUI_RUNDEFMSG'
  470. EndFunc
  471.  
  472.  
  473. Func _ChildCoor($Gui, $w, $h, $c=0, $d=0)
  474.     Local $aWA = _WinAPI_GetWorkingArea(), _
  475.     $GP = WinGetPos($Gui), _
  476.     $wgcs=WinGetClientSize($Gui)
  477.     Local $dLeft=($GP[2]-$wgcs[0])/2, _
  478.     $dTor=$GP[3]-$wgcs[1]-$dLeft
  479.     If $c = 0 Then
  480.         $GP[0]=$GP[0]+($GP[2]-$w)/2-$dLeft
  481.         $GP[1]=$GP[1]+($GP[3]-$h-$dLeft-$dTor)/2
  482.     EndIf
  483.     If $d>($aWA[2]-$aWA[0]-$w-$dLeft*2)/2 Or $d>($aWA[3]-$aWA[1]-$h-$dLeft+$dTor)/2 Then $d=0
  484.     If $GP[0]+$w+$dLeft*2+$d>$aWA[2] Then $GP[0]=$aWA[2]-$w-$d-$dLeft*2
  485.     If $GP[1]+$h+$dLeft+$dTor+$d>$aWA[3] Then $GP[1]=$aWA[3]-$h-$dLeft-$dTor-$d
  486.     If $GP[0]<=$aWA[0]+$d Then $GP[0]=$aWA[0]+$d
  487.     If $GP[1]<=$aWA[1]+$d Then $GP[1]=$aWA[1]+$d
  488.     $GP[2]=$w
  489.     $GP[3]=$h
  490.     Return $GP
  491. EndFunc
  492.  
  493. Func _WinAPI_GetWorkingArea()
  494.     Local Const $SPI_GETWORKAREA = 48
  495.     Local $stRECT = DllStructCreate("long; long; long; long")
  496.  
  497.     Local $SPIRet = DllCall("User32.dll", "int", "SystemParametersInfo", "uint", $SPI_GETWORKAREA, "uint", 0, "ptr", DllStructGetPtr($stRECT), "uint", 0)
  498.     If @error Then Return 0
  499.     If $SPIRet[0] = 0 Then Return 0
  500.  
  501.     Local $sLeftArea = DllStructGetData($stRECT, 1)
  502.     Local $sTopArea = DllStructGetData($stRECT, 2)
  503.     Local $sRightArea = DllStructGetData($stRECT, 3)
  504.     Local $sBottomArea = DllStructGetData($stRECT, 4)
  505.  
  506.     Local $aRet[4] = [$sLeftArea, $sTopArea, $sRightArea, $sBottomArea]
  507.     Return $aRet
  508. EndFunc
  509.  
  510.  
  511. Func _About()
  512.     Local $GP=_ChildCoor($Gui1, 210, 180)
  513.     GUISetState(@SW_DISABLE, $Gui1)
  514.     Local $font="Arial", $msg
  515.     Local $Gui2 = GUICreate($LngAbout, $GP[2], $GP[3], $GP[0], $GP[1], 0x00C00000+0x00080000, -1, $Gui1) ; WS_CAPTION+WS_SYSMENU
  516.     GUISetBkColor (0xffca48)
  517.     GUICtrlCreateLabel($LngTitle, 0, 0, 210, 63, 0x01+0x0200)
  518.     GUICtrlSetFont (-1,14, 600, -1, $font)
  519.     GUICtrlSetColor(-1,0xa13d00)
  520.     GUICtrlSetBkColor (-1, 0xfbe13f)
  521.     GUICtrlCreateLabel ("-", 2,64,208,1,0x10)
  522.    
  523.     GUISetFont (9, 600, -1, $font)
  524.     GUICtrlCreateLabel($LngVer&' 0.2   8.05.2011', 15, 100, 210, 17)
  525.     GUICtrlCreateLabel($LngSite&':', 15, 115, 40, 17)
  526.     $url=GUICtrlCreateLabel('http://azjio.ucoz.ru', 52, 115, 170, 17)
  527.     GUICtrlSetCursor(-1, 0)
  528.     GUICtrlSetColor(-1, 0x0000ff)
  529.     GUICtrlCreateLabel('WebMoney:', 15, 130, 85, 17)
  530.     $WbMn=GUICtrlCreateLabel('R939163939152', 90, 130, 125, 17)
  531.     GUICtrlSetColor(-1,0xa21a10)
  532.     GUICtrlSetTip(-1, $LngCopy)
  533.     GUICtrlSetCursor(-1, 0)
  534.     GUICtrlCreateLabel('Copyright AZJIO © 2010', 15, 145, 210, 17)
  535.     GUISetState(@SW_SHOW, $Gui2)
  536.     While 1
  537.       $msg = GUIGetMsg()
  538.       Select
  539.         Case $msg = $url
  540.             ShellExecute ('http://azjio.ucoz.ru')
  541.         Case $msg = $WbMn
  542.             ClipPut('R939163939152')
  543.         Case $msg = -3
  544.             GUISetState(@SW_ENABLE, $Gui1)
  545.             GUIDelete($Gui2)
  546.             ExitLoop
  547.         EndSelect
  548.     WEnd
  549. EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement