Gnat Posted April 3, 2007 Posted April 3, 2007 I am working on a login script, that when run, has a default choice. I would like the script to wait 3 seconds to see if the user changes the default, and if they don't, I want the script to then run. Here is a sample of my code, but I don't know where to do the "timeout" part...any help would be appreciated... #include <GUIConstants.au3> Global $SHELL32DLL = @SystemDir & "\SHELL32.dll" Global $GUI, $logonServer, $gcpLogo, $gceInfoWindow Global $DomainName = @LogonDomain Global $UserName = @UserName Global $updates, $gcgScriptDecision, $gcpScriptProgress Global $colItems, $objItem, $FullName, $Name, $PasswordExpires ;#NoTrayIcon Opt('GUICloseOnESC', 0); 1 = ESC closes / 0 = ESC won't close Opt('GUIEventOptions', 1); 0=default, 1=just notification, 2=GuiCtrlRead tab index Opt('TrayIconDebug', 0); 0=no info, 1=debug line info ;Opt('TrayMenuMode', 1); 0=append, 1=no default menu, 2=no automatic check, 4=menuitemID not return Opt('TrayOnEventMode', 1); 0=disable, 1=enable ;******************************************************************************** ;* Script body ;******************************************************************************** _UserDomainInfo() $GUI = GUICreate('Logon Script', 344, 443, 20, 20) GUISetIcon($SHELL32DLL, 21, $GUI) $gcpLogo = GUICtrlCreatePic(@LogonServer & '\NETLOGON\Utils\Logo.bmp', 130, 10, 80, 30) $gceInfoWindow = GUICtrlCreateEdit('', 24, 50, 296, 130, $ES_READONLY) GUICtrlSetBkColor($gceInfoWindow, 0xffffff) GUICtrlSetData($gceInfoWindow, 'Full Name: ' & $FullName & @CRLF & 'Username: ' & @UserName & @CRLF & 'Password Expires On: ' & _ $PasswordExpires & @CRLF & 'Workstation: ' & @ComputerName & @CRLF & 'Logon Server: ' & @LogonServer & @CRLF & _ 'Date/Time: ' & @MON & '/' & @MDAY & '/' & @YEAR & ' ' & @HOUR & ':' & @MIN & ':' & @SEC & @CRLF & @CRLF & _ 'Please regularly reboot your PC to ensure that any' & @CRLF & 'important Security Updates and Patches are installed!') $updates = GUICtrlCreateEdit('', 24, 181, 296, 184, $ES_READONLY) GUICtrlSetBkColor($updates, 0xffffff) $gcgScriptDecision = GUICtrlCreateGroup('Choose the script to run:', 24, 370, 296, 38) $gcrProductionChoice = GUICtrlCreateRadio('Production', 160, 387, 70, 10) $gcrBetaChoice = GUICtrlCreateRadio('Beta', 250, 387, 50, 10) GUICtrlSetState($gcrProductionChoice, $GUI_CHECKED) $gcpScriptProgress = GUICtrlCreateProgress(10, 413, 324, 20, $PBS_SMOOTH) GUISetState (@SW_SHOW, $GUI) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE GUIDelete($GUI) Exit Case $gcrProductionChoice MsgBox(0, 'Test', 'Test') EndSwitch WEnd ;******************************************************************************** ;* This section is for all functions. * ;******************************************************************************** Func _UserDomainInfo() $wbemFlagReturnImmediately = 0x10 $wbemFlagForwardOnly = 0x20 $colItems = '' $objWMIService = ObjGet('WinNT://' & $DomainName & '/' & $UserName & ',user') $FullName = $objWMIService.Fullname $objWMIService = ObjGet('winmgmts:\\localhost\root\cimv2') $colItems = $objWMIService.ExecQuery('Select * from Win32_NetworkLoginProfile') For $objItem in $colItems $Name = $objItem.Name If $Name = @LogonDomain & '\' & @UserName Then $PasswordExpires = StringMid($objItem.PasswordExpires, 5, 2) & '/' & StringMid($objItem.PasswordExpires, 7,2) & _ '/' & StringLeft($objItem.PasswordExpires, 4) & ' ' & StringMid($objItem.PasswordExpires, 9, 2) & _ ':' & StringMid($objItem.PasswordExpires, 11, 2) & ':' & StringMid($objItem.PasswordExpires, 13, 2) EndIf Next EndFunc; _UserDomainInfo()
Pa Callender Posted April 3, 2007 Posted April 3, 2007 Try this: CODEexpandcollapse popup#include <GUIConstants.au3> Global $SHELL32DLL = @SystemDir & "\SHELL32.dll" Global $GUI, $logonServer, $gcpLogo, $gceInfoWindow Global $DomainName = @LogonDomain Global $UserName = @UserName Global $updates, $gcgScriptDecision, $gcpScriptProgress Global $colItems, $objItem, $FullName, $Name, $PasswordExpires ;#NoTrayIcon Opt('GUICloseOnESC', 0); 1 = ESC closes / 0 = ESC won't close Opt('GUIEventOptions', 1); 0=default, 1=just notification, 2=GuiCtrlRead tab index Opt('TrayIconDebug', 0); 0=no info, 1=debug line info ;Opt('TrayMenuMode', 1); 0=append, 1=no default menu, 2=no automatic check, 4=menuitemID not return Opt('TrayOnEventMode', 1); 0=disable, 1=enable ;******************************************************************************** ;* Script body ;******************************************************************************** _UserDomainInfo() $GUI = GUICreate('Logon Script', 344, 443, 20, 20) GUISetIcon($SHELL32DLL, 21, $GUI) $gcpLogo = GUICtrlCreatePic(@LogonServer & '\NETLOGON\Utils\Logo.bmp', 130, 10, 80, 30) $gceInfoWindow = GUICtrlCreateEdit('', 24, 50, 296, 130, $ES_READONLY) GUICtrlSetBkColor($gceInfoWindow, 0xffffff) GUICtrlSetData($gceInfoWindow, 'Full Name: ' & $FullName & @CRLF & 'Username: ' & @UserName & @CRLF & 'Password Expires On: ' & _ $PasswordExpires & @CRLF & 'Workstation: ' & @ComputerName & @CRLF & 'Logon Server: ' & @LogonServer & @CRLF & _ 'Date/Time: ' & @MON & '/' & @MDAY & '/' & @YEAR & ' ' & @HOUR & ':' & @MIN & ':' & @SEC & @CRLF & @CRLF & _ 'Please regularly reboot your PC to ensure that any' & @CRLF & 'important Security Updates and Patches are installed!') $updates = GUICtrlCreateEdit('', 24, 181, 296, 184, $ES_READONLY) GUICtrlSetBkColor($updates, 0xffffff) $gcgScriptDecision = GUICtrlCreateGroup('Choose the script to run:', 24, 370, 296, 38) $gcrProductionChoice = GUICtrlCreateRadio('Production', 160, 387, 70, 10) $gcrBetaChoice = GUICtrlCreateRadio('Beta', 250, 387, 50, 10) GUICtrlSetState($gcrProductionChoice, $GUI_CHECKED) $gcpScriptProgress = GUICtrlCreateProgress(10, 413, 324, 20, $PBS_SMOOTH) GUISetState (@SW_SHOW, $GUI) AdlibEnable('ChooseScript',3000) ;set a timer for ChooseScript() to run in 3000 ms (3 seconds) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE GUIDelete($GUI) Exit EndSwitch WEnd ;******************************************************************************** ;* Production / Beta functions. * ;******************************************************************************** Func ChooseScript() If BitAnd(GUICtrlRead($gcrBetaChoice),$GUI_CHECKED) = $GUI_CHECKED Then BetaScript() Else ProductionScript() EndIf AdlibDisable() ;make sure the timer doesn't run again later EndFunc Func BetaScript() MsgBox(0, '', 'Running BETA script...') Exit EndFunc Func ProductionScript() MsgBox(0, '', 'Running PRODUCTION script...') Exit EndFunc ;******************************************************************************** ;* This section is for all other functions. * ;******************************************************************************** Func _UserDomainInfo() $wbemFlagReturnImmediately = 0x10 $wbemFlagForwardOnly = 0x20 $colItems = '' $objWMIService = ObjGet('WinNT://' & $DomainName & '/' & $UserName & ',user') $FullName = $objWMIService.Fullname $objWMIService = ObjGet('winmgmts:\\localhost\root\cimv2') $colItems = $objWMIService.ExecQuery('Select * from Win32_NetworkLoginProfile') For $objItem in $colItems $Name = $objItem.Name If $Name = @LogonDomain & '\' & @UserName Then $PasswordExpires = StringMid($objItem.PasswordExpires, 5, 2) & '/' & StringMid($objItem.PasswordExpires, 7,2) & _ '/' & StringLeft($objItem.PasswordExpires, 4) & ' ' & StringMid($objItem.PasswordExpires, 9, 2) & _ ':' & StringMid($objItem.PasswordExpires, 11, 2) & ':' & StringMid($objItem.PasswordExpires, 13, 2) EndIf Next EndFunc I used the Adlib functions to create a similar effect to Javascript's setTimeout(). [size="4"]YOU SHALL NOT PARSE!![/size]
Insomniax Posted June 22, 2008 Posted June 22, 2008 Try this: expandcollapse popup#include <GUIConstants.au3> Global $SHELL32DLL = @SystemDir & "\SHELL32.dll" Global $GUI, $logonServer, $gcpLogo, $gceInfoWindow Global $DomainName = @LogonDomain Global $UserName = @UserName Global $updates, $gcgScriptDecision, $gcpScriptProgress Global $colItems, $objItem, $FullName, $Name, $PasswordExpires ;#NoTrayIcon Opt('GUICloseOnESC', 0); 1 = ESC closes / 0 = ESC won't close Opt('GUIEventOptions', 1); 0=default, 1=just notification, 2=GuiCtrlRead tab index Opt('TrayIconDebug', 0); 0=no info, 1=debug line info ;Opt('TrayMenuMode', 1); 0=append, 1=no default menu, 2=no automatic check, 4=menuitemID not return Opt('TrayOnEventMode', 1); 0=disable, 1=enable ;******************************************************************************** ;* Script body ;******************************************************************************** _UserDomainInfo() $GUI = GUICreate('Logon Script', 344, 443, 20, 20) GUISetIcon($SHELL32DLL, 21, $GUI) $gcpLogo = GUICtrlCreatePic(@LogonServer & '\NETLOGON\Utils\Logo.bmp', 130, 10, 80, 30) $gceInfoWindow = GUICtrlCreateEdit('', 24, 50, 296, 130, $ES_READONLY) GUICtrlSetBkColor($gceInfoWindow, 0xffffff) GUICtrlSetData($gceInfoWindow, 'Full Name: ' & $FullName & @CRLF & 'Username: ' & @UserName & @CRLF & 'Password Expires On: ' & _ $PasswordExpires & @CRLF & 'Workstation: ' & @ComputerName & @CRLF & 'Logon Server: ' & @LogonServer & @CRLF & _ 'Date/Time: ' & @MON & '/' & @MDAY & '/' & @YEAR & ' ' & @HOUR & ':' & @MIN & ':' & @SEC & @CRLF & @CRLF & _ 'Please regularly reboot your PC to ensure that any' & @CRLF & 'important Security Updates and Patches are installed!') $updates = GUICtrlCreateEdit('', 24, 181, 296, 184, $ES_READONLY) GUICtrlSetBkColor($updates, 0xffffff) $gcgScriptDecision = GUICtrlCreateGroup('Choose the script to run:', 24, 370, 296, 38) $gcrProductionChoice = GUICtrlCreateRadio('Production', 160, 387, 70, 10) $gcrBetaChoice = GUICtrlCreateRadio('Beta', 250, 387, 50, 10) GUICtrlSetState($gcrProductionChoice, $GUI_CHECKED) $gcpScriptProgress = GUICtrlCreateProgress(10, 413, 324, 20, $PBS_SMOOTH) GUISetState (@SW_SHOW, $GUI) AdlibEnable('ChooseScript',3000) ;set a timer for ChooseScript() to run in 3000 ms (3 seconds) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE GUIDelete($GUI) Exit EndSwitch WEnd ;******************************************************************************** ;* Production / Beta functions. * ;******************************************************************************** Func ChooseScript() If BitAnd(GUICtrlRead($gcrBetaChoice),$GUI_CHECKED) = $GUI_CHECKED Then BetaScript() Else ProductionScript() EndIf AdlibDisable() ;make sure the timer doesn't run again later EndFunc Func BetaScript() MsgBox(0, '', 'Running BETA script...') Exit EndFunc Func ProductionScript() MsgBox(0, '', 'Running PRODUCTION script...') Exit EndFunc ;******************************************************************************** ;* This section is for all other functions. * ;******************************************************************************** Func _UserDomainInfo() $wbemFlagReturnImmediately = 0x10 $wbemFlagForwardOnly = 0x20 $colItems = '' $objWMIService = ObjGet('WinNT://' & $DomainName & '/' & $UserName & ',user') $FullName = $objWMIService.Fullname $objWMIService = ObjGet('winmgmts:\\localhost\root\cimv2') $colItems = $objWMIService.ExecQuery('Select * from Win32_NetworkLoginProfile') For $objItem in $colItems $Name = $objItem.Name If $Name = @LogonDomain & '\' & @UserName Then $PasswordExpires = StringMid($objItem.PasswordExpires, 5, 2) & '/' & StringMid($objItem.PasswordExpires, 7,2) & _ '/' & StringLeft($objItem.PasswordExpires, 4) & ' ' & StringMid($objItem.PasswordExpires, 9, 2) & _ ':' & StringMid($objItem.PasswordExpires, 11, 2) & ':' & StringMid($objItem.PasswordExpires, 13, 2) EndIf Next EndFunc I used the Adlib functions to create a similar effect to Javascript's setTimeout().
GaryFrost Posted June 22, 2008 Posted June 22, 2008 _Timer_SetTimer, _Timer_KillTimer You can have more than 1 timer SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference.
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