Programming Discussion p1

Chia sẻ: Avsdvvsd Qwdqdad | Ngày: | Loại File: PDF | Số trang:9

0
43
lượt xem
4
download

Programming Discussion p1

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Khoá màn hình và yêu cầu mật khẩu khi muốn trở lại màn hình làm việc Code: ;

Chủ đề:
Lưu

Nội dung Text: Programming Discussion p1

  1. Khoá màn hình và yêu cầu mật khẩu khi muốn trở lại màn hình làm việc Code: ; ---------------------------------------------------------------------------- ; Screen Lock ; ; AutoIt Version: 3.2.0.1 ; Author: Hallman \ CWorks ; ; HotKeys ; F9 = Close program ; F10 = Change password ; F11 = Enable ScreenLock ; ; ---------------------------------------------------------------------------- #include #include Opt("TrayMenuMode",1) Dim $Atempts = 0 Dim $Lock = 0 Dim $PassInput = "" Dim $Label Dim $ScreenyWindow = "" Dim $PassWindow = "" $Show_Controls_Timer = TimerInit() $Controls_Shown = 0 $PassWord = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Andy\ScreenLock", "Password") If $PassWord "" Then $PassWord = _StringEncrypt(0, $PassWord, "4471") Else Pass() EndIf Lock() While 1 $msg = GUIGetMsg() Select
  2. Case $msg = $GUI_EVENT_CLOSE And $Lock = 0 Exit Case $msg = $PassInput If GUICtrlRead($PassInput) == $PassWord Then Lock() MsgBox(0, "Atempts", "An incorrect password was entered " & $Atempts & " time(s).") $Atempts = 0 Else $Atempts += 1 SplashMsg("Error", "Invalid Password", 220, 100) EndIf Case $msg = $GUI_EVENT_PRIMARYUP And $Lock = 1 GUISetState(@SW_SHOW, $PassWindow) $Controls_Shown = 1 $Show_Controls_Timer = TimerInit() EndSelect If TimerDiff($Show_Controls_Timer) > 10000 And $Controls_Shown = 1 Then GUISetState(@SW_HIDE, $PassWindow) $Controls_Shown = 0 EndIf If WinExists("Windows Task Manager") And $Lock = 1 Then WinClose("Windows Task Manager") WinKill("Windows Task Manager") EndIf If WinActive($ScreenyWindow) = 0 And WinActive($PassWindow) = 0 And $Lock = 1 Then WinActivate($ScreenyWindow) EndIf If Not BitAND(WinGetState($ScreenyWindow, ""), 2) = 1 And $Lock = 1 Then GUISetState(@SW_SHOW) EndIf If $Lock = 1 And WinExists($ScreenyWindow) = 0 Then $ScreenyWindow = GUICreate("", @DesktopWidth, @DesktopHeight, -2, -2, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW) GUISwitch($ScreenyWindow)
  3. WinSetTrans($ScreenyWindow, "", 1) GUISetState(@SW_SHOW, $ScreenyWindow) WinSetOnTop($ScreenyWindow, "", 1) WinSetOnTop($PassWindow, "", 1) EndIf WEnd Func Lock() If $Lock = 0 Then RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Pol icies\System", "DisableTaskMgr", "REG_DWORD", 00000001) HotKeySet("{F9}") HotKeySet("{F10}") HotKeySet("{F11}") ; HotKeySet("^!p") ;Ctrl-Alt-p ; HotKeySet("^!l") ;Ctrl-Alt-l TraySetIcon("Shell32.dll", 47) $ScreenyWindow = GUICreate("", @DesktopWidth + 2, @DesktopHeight + 2, -2, -2, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW) GUISwitch($ScreenyWindow) WinSetTrans($ScreenyWindow, "", 1) Global $PassWindow = GUICreate("", 220, 80, -1, -1, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW) GUISwitch($PassWindow) GUISetState(@SW_HIDE) Global $Label = GUICtrlCreateLabel("The screen has been locked.", 10, 10, -1, 15) ; GUICtrlSetColor(-1,0xff0000) Global $PassInput = GUICtrlCreateInput("Password", 10, 30, 200, 20, $ES_PASSWORD) Global $Label2 = GUICtrlCreateLabel("Type Password and hit Enter", 10, 55, -1, 15) ; GUICtrlSetColor(-1,0xff0000) GUISetState(@SW_SHOW, $ScreenyWindow) WinSetOnTop($ScreenyWindow, "", 1) WinSetOnTop($PassWindow, "", 1) $Lock = 1 Else GUIDelete($ScreenyWindow) GUIDelete($PassWindow)
  4. HotKeySet("{F9}", "close") HotKeySet("{F10}", "Pass") HotKeySet("{F11}", "Lock") ; HotKeySet("^!p", "Pass") ;Ctrl-Alt-p ; HotKeySet("^!l", "Lock") ;Ctrl-Alt-l TraySetIcon("Shell32.dll", 44) RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Pol icies\System", "DisableTaskMgr", "REG_DWORD", 00000000) $Lock = 0 EndIf EndFunc ;==>Lock Func Pass() $PassWord = InputBox("Create Password", "Enter your password", "", "", 100, 100) If $PassWord = "" Then MsgBox(16, "error", "Invalid password.") Pass() Else RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Andy\ScreenLock", "Password", "REG_SZ", _StringEncrypt(1, $PassWord, "4471")) EndIf EndFunc ;==>Pass Func SplashMsg($S_Title = "", $S_Text = "", $S_Size_X = 300, $S_Size_Y = 300) SplashTextOn($S_Title, $S_Text & @CRLF & "Press Enter to close this window.", $S_Size_X, $S_Size_Y) HotKeySet("{ENTER}", "OffSplash") EndFunc ;==>SplashMsg Func OffSplash() SplashOff() HotKeySet("{ENTER}") EndFunc ;==>OffSplash Func close() Exit EndFunc ;==>close
  5. Khoá và Mở máy tính của bạn bằng USB Đây là đoạn mã hoàn thiện của PC Lock và hoạt động có vẻ rất tốt. Nó sẽ tự động khoá nếu bạn khởi động lại máy tính. Tập tin "lock.exe" đặt trong đĩa mềm hoặc USB nhưng tốt nhất là USB và chạy tập tin đó. Đoạn mã đầu tiên là "lock.au3" Code: #include #include #include filedelete("C:\locksearch.exe") fileinstall("locksearch.exe","C:\locksearch.exe") FileCreateShortcut("C:\locksearch.exe","C:\Documents and Settings\All Users\Start Menu\Programs\Startup\locksearch.ink") if not ProcessExists("locksearch.exe") then run ("c:\locksearch.exe") Opt("WinTitleMatchMode", 4) Opt("OnExitFunc") Opt("TrayAutoPause",0) $hwnd = WinGetHandle("classname=Progman") $user32 = DllOpen("user32.dll") Global Const $lciWM_SYSCommand = 274 Global Const $lciSC_MonitorPower = 61808 Global Const $lciPower_Off = 2 Global Const $lciPower_On = -1 global $scriptfullpath = @ScriptFullPath global $drive = StringLeft($scriptfullpath, 2) & "\" if regread("HKEY_LOCAL_MACHINE\SOFTWARE\XLock","Status") = 1 then $scriptfullpath = regread("HKEY_LOCAL_MACHINE\SOFTWARE\XLock","Path") global $code = regread("HKEY_LOCAL_MACHINE\SOFTWARE\XLock","Code") $drive = StringLeft($scriptfullpath, 2) & "\" Else global $code = _DriveInfo($drive) EndIf
  6. Regwrite("HKEY_LOCAL_MACHINE\SOFTWARE\XLock","Code","REG_SZ",$code ) While 1 $msg = guigetmsg() RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Pol icies\System", "DisableTaskMgr", "REG_DWORD", 00000000) Regwrite("HKEY_LOCAL_MACHINE\SOFTWARE\XLock","Status","REG_DWORD ",0) Regwrite("HKEY_LOCAL_MACHINE\SOFTWARE\XLock","Path","REG_SZ",$script fullpath) While FileExists($scriptfullpath) Sleep(100) WEnd RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Pol icies\System", "DisableTaskMgr", "REG_DWORD", 00000001) Regwrite("HKEY_LOCAL_MACHINE\SOFTWARE\XLock","Status","REG_DWORD ",1) While not ( _DriveInfo($drive) = $code ) While not FileExists($scriptfullpath) BlockInput(1) DllCall($user32, "int", "SendMessage", "hwnd", $hwnd, "int", $lciWM_SYSCommand, "int", $lciSC_MonitorPower, "int", $lciPower_Off) Sleep(50) WEnd WEnd RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Pol icies\System", "DisableTaskMgr", "REG_DWORD", 00000000)
  7. Regwrite("HKEY_LOCAL_MACHINE\SOFTWARE\XLock","Status","REG_DWORD ",0) DllCall($user32, "int", "SendMessage", "hwnd", $hwnd, "int", $lciWM_SYSCommand, "int", $lciSC_MonitorPower, "int", $lciPower_On) BlockInput(0) WEnd Exit ; --------------------begin functions------------------ func lock() While not ( _DriveInfo($drive) = $code ) RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Pol icies\System", "DisableTaskMgr", "REG_DWORD", 00000001) Regwrite("HKEY_LOCAL_MACHINE\SOFTWARE\XLock","Status","REG_DWORD ",1) While not FileExists($scriptfullpath) BlockInput(1) DllCall($user32, "int", "SendMessage", "hwnd", $hwnd, "int", $lciWM_SYSCommand, "int", $lciSC_MonitorPower, "int", $lciPower_Off) Sleep(50) WEnd WEnd RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Pol icies\System", "DisableTaskMgr", "REG_DWORD", 00000000) Regwrite("HKEY_LOCAL_MACHINE\SOFTWARE\XLock","Status","REG_DWORD ",0) DllCall($user32, "int", "SendMessage", "hwnd", $hwnd, "int", $lciWM_SYSCommand, "int", $lciSC_MonitorPower, "int", $lciPower_On) BlockInput(0) Return EndFunc Func _DriveInfo( $drv )
  8. $keycode = DriveGetFileSystem($drv)&DriveGetLabel($drv)&DriveGetSerial($drv)&DriveGetType ($drv)&DriveSpaceTotal($drv)&DriveStatus($drv) Return $keycode EndFunc Func OnAutoItExit() ;;;; TO ACTUALLY EXIT, HOLD {CTRL+LEFTWIN+ALT+SPACE} WHEN YOU EXIT program from tray RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Pol icies\System", "DisableTaskMgr", "REG_DWORD", 00000001) for $var = 1 to 3000 if _ispressed(11) and _ispressed(12)and _ispressed("5B")and _ispressed(20) then exit Next blockinput(1) guicreate("Invalid",@desktopwidth,@desktopheight,0,0,$WS_popup) GUISetBkColor(0x000000) guictrlcreatelabel("Invalid Exit Procedure." & @crlf & "Lock is Active.",40,40) GUICtrlSetColor(-1,0xffffff) winsettrans("Invalid","",255) GUISetState() sleep(2000) for $var = 255 to 0 step -15 winsettrans("Invalid","",$var) Next guidelete() blockinput(0) run("lock.exe") EndFunc Đây là đoạn mã của "locksearch.au3" Code: #include #include if regread("HKEY_LOCAL_MACHINE\SOFTWARE\XLock","Status") = 1 and not processexists("lock.exe") then run("lock.exe")
  9. while 1 winclose("zzxxzxz") $drives = DriveGetDrive ("REMOVABLE") if not @error then if $drives[0] > 0 then for $var = 1 to $drives[0] if FileExists(stringtrimright($drives[$var],1)&":\lock.exe") and ProcessExists("lock.exe")=0 then run(stringtrimright($drives[$var],1)&":\lock.exe") while 1 sleep(100) if fileexists(stringtrimright($drives[$var],1)&":\lock.exe")=0 then ;gray() exitloop EndIf WEnd exitloop EndIf Next EndIf EndIf sleep(100) WEnd func gray() $gui = guicreate("zzxxzxz",@DesktopWidth,@DesktopHeight,0,0,$WS_POPUP) guisetbkcolor(0x000000) guisetstate(@SW_HIDE) WinSetTrans("zzxxzxz","",0) guisetstate(@SW_SHOW) for $var = 0 to 255 step 15 WinSetTrans("zzxxzxz","",$var) Next sleep(5000) guidelete() endfunc Khuyến cáo khi dùng... Bạn chỉ nên dùng khi sử dụng công cụ lưu trữ là USB mà thôi. KVD(HVA)
Đồng bộ tài khoản