bentom Posted February 10, 2011 Posted February 10, 2011 Hi, i Have a problem here which I would like to solve with help of AutoIT. Perhaps there's a possibility and someone knows how to start. Attached is a screenshot (In German but should be the sama in English OS). The Problem is that after attaching a new keyboard or mouse the Setting is defined automatically that it can awake the computer. The result is that the system starts up though it is not wanted. When disabling it it works but changes back after attaching a new keyboard or mouse. Is it possible to modify this setting. I would then run this script after reboot. Regards, B
hannes08 Posted February 10, 2011 Posted February 10, 2011 Hi bentom, try to find out the registry value that affects this settings. You could use a tool like ProcessMonitor to lookout for this value. Then you can set it with RegWrite() Regards, Hannes Regards,Hannes[spoiler]If you can't convince them, confuse them![/spoiler]
tim292stro Posted February 10, 2011 Posted February 10, 2011 (edited) Hi Bentom, I had a similar problem with wake timers and other settings when I closed a tool that does automatic cyclic rebooting for the system (S3/S4). I wrote this code to adress the settings of power values: expandcollapse popupConst $AllowWakeTimerSetting = "1" ; 1 = allow wake timers Const $RequirePasswordonresumeSetting = "0" ; 0 = do not require password at wakeup ; Get the current power configuration, and dump to file for parsing... ; I use the local run prompt since I discovered that I MUST be running as admin to change this... send ( "{LWINDOWN}r{LWINUP}" ) WinWaitActive ( "Run", "the name of a program", 20 ) ControlSend ( "Run", "the name of a program", "[CLASSNN:Edit1]", 'cmd /c "powercfg.exe -q>' & @TempDir & '\CurrentPowerDump.txt"' ) sleep ( 300 ) ControlClick ( "Run", "the name of a program", "[CLASSNN:Button2]" ) ; Give the file a chance to be written to the hard drive... Sleep ( 3000 ) ; Parse dumped config and locate the power config GUID, and control info (sub/setting GUIDs)... $EOF = 0 $CurrentConfigDump = FileOpen ( @TempDir & "\CurrentPowerDump.txt", 0 ) While $EOF = 0 $TempText = FileReadLine ( $CurrentConfigDump ) $EOF = @error ; Get "Power Scheme" info... If StringInStr ( $TempText, "Power Scheme GUID:" ) > 0 Then $TempText = StringSplit ( StringStripWS ( $TempText, 7 ), " " ) $PowerScheme = $TempText[4] ; Get "Require Password" control info... ElseIf ( StringInStr ( $TempText, "Subgroup GUID:" ) > 0 ) And ( StringInStr ( $TempText, "(Settings belonging to no subgroup)" ) > 0 ) Then $TempText = StringSplit ( StringStripWS ( $TempText, 7 ), " " ) $NoSubgroupSubgroup = $TempText[3] ElseIf ( StringInStr ( $TempText, "Power Setting GUID:" ) > 0 ) And ( StringInStr ( $TempText, "(Require a password on wakeup)" ) > 0 ) Then $TempText = StringSplit ( StringStripWS ( $TempText, 7 ), " " ) $PasswordonresumeSetting = $TempText[4] ; Get "Wake Timer" control info... ElseIf ( StringInStr ( $TempText, "Subgroup GUID:" ) > 0 ) And ( StringInStr ( $TempText, "(Sleep)" ) > 0 ) Then $TempText = StringSplit ( StringStripWS ( $TempText, 7 ), " " ) $SleepSubgroup = $TempText[3] ElseIf ( StringInStr ( $TempText, "Power Setting GUID:" ) > 0 ) And ( StringInStr ( $TempText, "(Allow wake timers)" ) > 0 ) Then $TempText = StringSplit ( StringStripWS ( $TempText, 7 ), " " ) $WakeTimerSetting = $TempText[4] EndIf WEnd FileClose ( $CurrentConfigDump ) sleep ( 2000 ) FileDelete ( @TempDir & "\CurrentPowerDump.txt" ) ; Set the AC and DC power settings... _SetPowerConfiguration ( $NoSubgroupSubgroup, $PasswordonresumeSetting, $RequirePasswordonresumeSetting ) _SetPowerConfiguration ( $SleepSubgroup, $WakeTimerSetting, $AllowWakeTimerSetting ) ; Get the updated power configuration, and report results to server... send ( "{LWINDOWN}r{LWINUP}" ) WinWaitActive ( "Run", "the name of a program", 20 ) ControlSend ( "Run", "the name of a program", "[CLASSNN:Edit1]", 'cmd /c "powercfg.exe -q>c:\UpdatedPower.txt"' ) sleep ( 300 ) ControlClick ( "Run", "the name of a program", "[CLASSNN:Button2]" ) sleep ( 3000 ) FileCopy ( "c:\UpdatedPower.txt", "c:\CurrentPowerCFG.txt" ) Func _SetPowerConfiguration ( $ThisPowerSubgroup = "", $ThisPowerSettingControl = "", $ThisPowerSettingState = "" ) Local $a = 1 Local $CurrentControl For $a = 1 to 2 If $a = 1 Then $CurrentControl = "-SETACVALUEINDEX" Else $CurrentControl = "-SETDCVALUEINDEX" EndIf send ( "{LWINDOWN}r{LWINUP}" ) WinWaitActive ( "Run", "the name of a program", 20 ) ControlSend ( "Run", "the name of a program", "[CLASSNN:Edit1]", 'cmd /c "powercfg.exe ' & $CurrentControl &' ' & $PowerScheme & ' ' & $ThisPowerSubgroup & ' ' & $ThisPowerSettingControl & ' ' & $ThisPowerSettingState & '"' ) sleep ( 300 ) ControlClick ( "Run", "the name of a program", "[CLASSNN:Button2]" ) Sleep ( 1000 ) Next EndFunc My advice would be to learn the command line powercfg tool (you can do a web search of how it works). What you'd want to do to make my code work in your case is figure out what the name of the keyboard control is in the powercfg tool and change the string I'm using which controls which function I'm modifying. I know it's not "sexy", but it's really reliable... Here's the help text from the command line tool: expandcollapse popupPOWERCFG [/LIST | /QUERY [name] | /CREATE name | /DELETE name | /SETACTIVE name | /CHANGE name settings | /HIBERNATE {ON|OFF} | /EXPORT name [/FILE filename] | /IMPORT name [/FILE filename] | /GLOBALPOWERFLAG {ON|OFF} /OPTION flag | /BATTERYALARM {LOW|CRITICAL} [settings] | /DEVICEQUERY queryflags | /DEVICEENABLEWAKE devicename | /DEVICEDISABLEWAKE devicename | /?] Description: This command line tool enables an administrator to control the power settings on a system. Parameter List: /LIST, /L Lists the names of existing power schemes. /QUERY, /Q Displays the configuration of the specified power scheme. If no name is specified, the configuration of the currently active power scheme is displayed. /CREATE, /C Creates a power scheme with the specified name. The new scheme is created with the properties of the currently active scheme. /DELETE, /D Deletes the power scheme with the specified name. /SETACTIVE, /S Makes the power scheme with the specified name active. /CHANGE, /X Changes settings of the specified power scheme. Additional switches specify the changes as follows: /monitor-timeout-ac <minutes> /monitor-timeout-dc <minutes> /disk-timeout-ac <minutes> /disk-timeout-dc <minutes> /standby-timeout-ac <minutes> /standby-timeout-dc <minutes> /hibernate-timeout-ac <minutes> /hibernate-timeout-dc <minutes> /processor-throttle-ac <throttle> /processor-throttle-dc <throttle> AC settings are used when the system is on AC power. DC settings are used when the system is on battery power. Setting a timeout to zero will disable the corresponding timeout feature. Supported throttle settings are NONE CONSTANT, DEGRADE, and ADAPTIVE. /EXPORT, /E Exports the power scheme with the specified name to a file. If no filename is specified, the default is SCHEME.POW. This additional parameter is supported: /FILE <filename> /IMPORT, /I Imports the power scheme from a file under the specified name. If no filename is specified, the default is SCHEME.POW. If a scheme with that name already exists, it is replaced with the new one. This additional parameter is supported: /FILE <filename> /HIBERNATE, /H {ON|OFF} Enables/Disables the hibernate feature. Hibernate timeout is not supported on all systems. /NUMERICAL, /N Allows the power scheme to be operated upon to be specified using a numerical identifier. When using this switch, in place of the name of the power scheme on the command line, specify its numerical identifier. This switch may be used in combination with the /QUERY, /DELETE, /SETACTIVE, /CHANGE, /EXPORT, and /IMPORT commands. /GLOBALPOWERFLAG, /G {ON|OFF} Turns one of the global power flags on/off. Valid flags (to be used after "/OPTION ") are: BATTERYICON: Turns the battery meter icon in the system tray on/off. MULTIBATTERY: Turns on/off multiple battery display in system Power Meter. RESUMEPASSWORD: Prompt for password on resuming the system. WAKEONRING: Turn on/off wake on ring support. VIDEODIM: Turn on/off support for dimming video display on battery power. /AVAILABLESLEEPSTATES, /A Reports the sleep states available on the system. Attempts to report reasons why sleep states are unavailable. /BATTERYALARM, /B {LOW|CRITICAL} Configures the battery alarm. The following switches can be specified: /activate <on|off> Enables or disables the alarm. /level <percentage (0 - 100)> The alarm will be activated when the power level reaches this percentage. /text <on|off> Turns the text notification on or off. /sound <on|off> Turns the audible notification on or off. /action <none|shutdown|hibernate|standby> Specifies the action to take when this alarm goes off. Not all actions are always available. /forceaction <on|off> Force stand by or shutdown even if a program stops responding. /program <on|off> Specifies a program to run. schtasks.exe /change may be used to configure the program. /DEVICEQUERY <queryflags> will return a list of devices that meet the criteria specified in <queryflags>. Possible values for <queryflags> are: wake_from_S1_supported - return all devices that support waking the system from a light sleep state. wake_from_S2_supported - return all devices that support waking the system from a deeper sleep state. wake_from_S3_supported - return all devices that support waking from the deepest sleep state. wake_from_any - return all devices that support waking from any sleep state. S1_supported - list devices supporting light sleep states. S2_supported - list devices supporting deeper sleep. S3_supported - list devices supporting deepest sleep. S4_supported - list devices supporting system hibernation. wake_programmable - list devices that are user-configurable to wake the system from a sleep state. wake_armed - list devices that are currently configured to wake the system from any sleep state. all_devices - return all devices present in the system. all_devices_verbose - return verbose list of devices. /DEVICEENABLEWAKE <devicename> enable the device to wake the system from a sleep state. <devicename> is a device retrieved using the '/DEVICEQUERY wake_programmable' parameter. /DEVICEDISABLEWAKE <devicename> disable the device from waking the system from a sleep state. <devicename> is a device retrieved using the '/DEVICEQUERY wake_armed' parameter. /HELP, /? Displays information on command-line parameters. Examples: POWERCFG /LIST POWERCFG /QUERY scheme POWERCFG /QUERY POWERCFG /CREATE scheme POWERCFG /DELETE scheme POWERCFG /SETACTIVE scheme POWERCFG /CHANGE scheme /monitor-timeout-dc 15 POWERCFG /CHANGE scheme /monitor-timeout-dc 0 POWERCFG /HIBERNATE on POWERCFG /EXPORT scheme /file file POWERCFG /QUERY number /NUMERICAL POWERCFG /GLOBALPOWERFLAG on /OPTION BATTERYICON POWERCFG /AVAILABLESLEEPSTATES POWERCFG /BATTERYALARM low POWERCFG /BATTERYALARM critical /ACTIVATE on /LEVEL 6 /ACTION hibernate POWERCFG /DEVICEQUERY wake_armed POWERCFG /DEVICEENABLEWAKE "Microsoft USB IntelliMouse Explorer" Best, -Tim Edited February 10, 2011 by tim292stro
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