Darc Posted July 30, 2006 Share Posted July 30, 2006 I have been working on a script for the last few days and I have run into a big problem. I have created a login/screen lock script that I want to use on a BartPE CD. The script for the log-in box works fine. However, my problems started when I tried to integrate it into Valuater's great "Vaulter - PC Lockout" script. I want to use the locking features of his script and have my login script kick in when the user moves the mouse or presses a key. I can't get my login script to stay on top. The login script opens then goes right to the background. Does anyone have any idea how I could integrate the two scripts? Below is a copy of my login script. Any help would be greatly appreciated. expandcollapse popup; ============================================================================================= ; Author: Darc ; Platform: WinPE/XPE ; Script Name: WinPE Toolbox Logon.exe ; Description: Prompt for ID and password and compare them to the contents of Pass.ini ; AutoIt Version: 3.1.1.114 (beta) ; History: ; v1.0 - Initial Release ; ; ============================================================================================= ; Declarations ; ============================================================================================= #include <GUIConstants.au3> #include <MD5.au3> #include <Date.au3> AutoItSetOption ( "RunErrorsFatal", 0 ) AutoItSetOption ( "TrayIconHide", 1 ) Opt("GUIOnEventMode", 1) ;HotKeySet( "{ENTER}", "_ok" ); Set escape as an exit hotkey $Script_Name = @ScriptName $Script_Name_Short = StringTrimRight($Script_Name, 4) $Title = "WinPE Toolbox - Logon"; Title of the main GUI $Version = "1.0" $Pass_List = "Pass.ini" $Min_User_Length = 6 $Min_Password_Length = 6 ;$User_Expires = "no" $Attempts_Allowed = 3 Dim $User_Name ; ============================================================================================= ; Make sure this script is not already running ; ============================================================================================= If WinExists ($Script_Name_Short & " 1st") Then WinActivate($Title & " "); The space at the end of the title is so the window will have a unique name _Middle($Title & " ", ""); Moves the GUI to the center of the screen Exit EndIf AutoItWinSetTitle ($Script_Name_Short & " 1st") ; ============================================================================================= ; Build the GUI ; ============================================================================================= $Main_Gui = GUICreate($Title & " ", 320, 165, -1, -1, BitOr($WS_POPUP,$WS_CAPTION)) GUISetState(@SW_SHOW) GuiSetIcon("Logon.ico") GUISetOnEvent($GUI_EVENT_CLOSE, "_Cancel") $SetLogon_Pic = GuiCtrlCreatePic("Logon_Full.jpg", 0, 0, 320, 60) GuiCtrlSetState($SetLogon_Pic,$GUI_DISABLE) $User_Label = GUICtrlCreateLabel("User: ",10,72,90,20) $User = GUICtrlCreateInput("",105,70,205,20, $ES_LOWERCASE) ControlFocus("", "", $User) $Password_Label = GUICtrlCreateLabel("Password: ",10,102,90,20) $Password = GUICtrlCreateInput("",105,100,205,20, $ES_PASSWORD) $Button_OK = GUICtrlCreateButton("OK", 155, 130, 75, 25) GUICtrlSetOnEvent($Button_OK, "_ok") $Button_Shutdown = GUICtrlCreateButton("Shutdown...", 235, 130, 75, 25) GUICtrlSetOnEvent($Button_Shutdown, "_Shutdown") GUISetState() While 1 Sleep(10); Slows down the script to minimize CPU usage WEnd ; ============================================================================================= ; Function _OK() ; Create or edit the current user (using MD5 encryption) ; ============================================================================================= Func _OK() Select Case GUICtrlRead($User) = "" MsgBox(8256,"No user specified","Please enter a user name.") ControlFocus("", "", $User) Return Case StringLen(GUICtrlRead($User)) < $Min_User_Length MsgBox(8208,"User name is not valid","Please make sure the user name is at least " & $Min_User_Length & " characters long.") GUICtrlSetData($User,"") ControlFocus("", "", $User) Return Case GUICtrlRead($Password) = "" MsgBox(8256,"No password specified","Please enter a password.") ControlFocus("", "", $Password) Return Case StringLen(GUICtrlRead($Password)) < $Min_Password_Length MsgBox(8208,"Password is not valid","Please make sure the password is at least " & $Min_Password_Length & " characters long.") GUICtrlSetData($Password,"") ControlFocus("", "", $Password) Return EndSelect If Not FileExists($Pass_List) Then MsgBox(8208,"No user's found","The user list could not be found." & @CRLF & @CRLF & "This PC will now shut down.") _Shutdown() Else $Current_Users = IniReadSectionNames($Pass_List) EndIf If IsArray($Current_Users) Then $Found_User = "no" For $u = 1 To $Current_Users[0] $Current_Users_Split = StringSplit($Current_Users[$u], "!") If $Current_Users_Split[1] = GUICtrlRead($User) Then $Found_User = "yes" $Selected_User_Name = $Current_Users[$u] ExitLoop EndIf Next Else MsgBox(8208,"No user's found","The user list could not be found." & @CRLF & @CRLF & "This PC will now shut down.") _Shutdown() EndIf If $Found_User = "yes" Then $User_Info = IniRead($Pass_List , $Selected_User_Name, "password", "") $Split_Name = StringSplit($Selected_User_Name, "!") $Split_User_Info = StringSplit($User_Info, "!") If $Split_Name[2] = MD5("no") Then If MD5(GUICtrlRead($Password)) = $Split_User_Info[1] Then MsgBox(8256,"Correct password", "You entered the correct password. Congrats!") _Cancel() Else ; $Attempt_Count = $Attempts_Allowed - 1 MsgBox(8256,"Wrong password", "You entered an incorrect password. Please try again.") GUICtrlSetData($Password,"") ControlFocus("", "", $Password) Return EndIf Else ;verify dates If MD5(_DateTimeFormat( _NowCalc(),2)) < $Split_User_Info[2] Then MsgBox(8256,"User has expired", "This user has an expired account. Please try another user.") GUICtrlSetData($User,"") ControlFocus("", "", $User) GUICtrlSetData($Password,"") Return ElseIf MD5(_DateTimeFormat( _NowCalc(),2)) > $Split_User_Info[3] Then MsgBox(8256,"User has expired", "This user has an expired account. Please try another user.") ControlFocus("", "", $User) GUICtrlSetData($Password,"") Return Else MsgBox(8256,"Correct password", "You entered the correct password. Congrats!") _Cancel() EndIf EndIf Else MsgBox(8208,"Invalid user","The user does not exist." & @CRLF & @CRLF & "Please try again.") GUICtrlSetData($User,"") ControlFocus("", "", $User) GUICtrlSetData($Password,"") Return EndIf EndFunc ; ==> _OK ; ============================================================================================= ; Function _Shutdown() ; ============================================================================================= Func _Shutdown() MsgBox(0, "Shutting Down", "You pressed Shutdown!") _Cancel() ; Use Paraglider's shutdown tool EndFunc ; ==> _Shutdown ; ============================================================================================= ; Function _Middle ; Center Window on Screen ; ============================================================================================= Func _Middle($win, $txt) $size = WinGetClientSize($win, $txt) Local $y = (@DesktopHeight / 2) - ($size[1] / 2) Local $x = (@DesktopWidth / 2) - ($size[0] / 2) Return WinMove($win, $txt, $x, $y) Return EndFunc ; ==> _Middle ; ============================================================================================= ; Function _Cancel() ; ============================================================================================= Func _Cancel() Exit EndFunc ; ==> _Cancel Link to comment Share on other sites More sharing options...
Darc Posted July 30, 2006 Author Share Posted July 30, 2006 I forgot to attach the Pass.ini. This needs to be in the same folder as the above script. Pass.ini [administrator!7fa3b767c460b54a2be4d49030b349c7] password=200ceb26807d6bf99fd6f4f0d1ca54d4!0f6cf78b4db217f4f73f5ca21e827a75!d22d6a9e946f702cdd1d10d10ed3ea90 The ID and Password are set to administrator. Link to comment Share on other sites More sharing options...
eynstyne Posted July 30, 2006 Share Posted July 30, 2006 For the GUI stay on top, you need the $WS_EX_TOPMOST style or use the Winsetontop("","",1) Also, the PC Lockout window has to be set non-topmost F@m!ly Guy Fr33k! - Avatar speaks for itself__________________________________________________________________________________________ite quotes... - Is your refrigerator running? If it is, It probably runs like you...very homosexually - Christians don't believe in gravity - Geeze Brian where do you think you are, Payless?- Show me potato Salad!__________________________________________________________________________________________Programs available - Shutdown timer[indent][/indent] Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now