fybhwsx 发表于 2014-1-8 21:08:05

【已解决】唤醒不需要输入密码的批处理,怎样换成AU3执行代码?

本帖最后由 fybhwsx 于 2014-1-8 23:15 编辑

@echo off

for /f "tokens=3" %%i in ('powercfg /q^|findstr /r "电源方案"') do (set guid1=%%i)

powercfg -setdcvalueindex %guid1% fea3413e-7e05-4911-9a71-700331f1c294 0e796bdb-100d-47d6-a2d5-f7d2daa51f51 0

powercfg -setacvalueindex %guid1% fea3413e-7e05-4911-9a71-700331f1c294 0e796bdb-100d-47d6-a2d5-f7d2daa51f51 0

虽然不能换成au3的直接执行代码,但把代码存为.bat 文件后,用ShellExecute("唤醒时不需要密码.bat","", @ScriptDir, "open", @SW_HIDE)可以成功运行。

顺便再贴几个其它电源设置项,给有需要的朋友。如果使用禁用休眠,就不需要使用从不休眠了。Run(@ComSpec & " /c " & 'powercfg -h off', "", @SW_HIDE);禁用休眠
Sleep(500)
;Run(@ComSpec & " /c " & 'POWERCFG /CHANGE hibernate-timeout-ac 0', "", @SW_HIDE);从不休眠
;Sleep(500)
;Run(@ComSpec & " /c " & 'POWERCFG /CHANGE hibernate-timeout-dc 0', "", @SW_HIDE);从不休眠
;Sleep(500)
Run(@ComSpec & " /c " & 'POWERCFG /CHANGE disk-timeout-ac 0', "", @SW_HIDE);从不关闭硬盘
Sleep(500)
Run(@ComSpec & " /c " & 'POWERCFG /CHANGE disk-timeout-dc 0', "", @SW_HIDE);从不关闭硬盘

afan 发表于 2014-1-8 21:12:08

存为bat文件,Run() 执行…

fybhwsx 发表于 2014-1-8 21:18:50

存为bat文件,Run() 执行…
afan 发表于 2014-1-8 21:12 http://www.autoitx.com/images/common/back.gif


    老大,不能au3直接执行吗?

fybhwsx 发表于 2014-1-8 21:20:46

批处理要以管理运行才管用的。

yinbinly 发表于 2014-1-8 21:21:18

RunWait(@ComSpec & ' /c ' & '@echo off ', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & 'for /f "tokens=3" %i in (' & "'" & _
'powercfg /q^|findstr /r "电源方案"' & "'" & _
') do (set guid1=%i) ', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & 'powercfg -setdcvalueindex %guid1% fea3413e-7e05-4911-9a71-700331f1c294 0e796bdb-100d-47d6-a2d5-f7d2daa51f51 0 ', '', @SW_HIDE)
RunWait(@ComSpec & ' /c ' & 'powercfg -setacvalueindex %guid1% fea3413e-7e05-4911-9a71-700331f1c294 0e796bdb-100d-47d6-a2d5-f7d2daa51f51 0 ', '', @SW_HIDE)

fybhwsx 发表于 2014-1-8 21:42:43


yinbinly 发表于 2014-1-8 21:21 http://www.autoitx.com/images/common/back.gif


    谢谢,不过好像不管用?

afan 发表于 2014-1-8 22:01:15

回复 3# fybhwsx


    这样?Local $Str = '@echo off &for /f "tokens=3" %%i in (' & "'powercfg /q^|findstr /r " & '"电源方案"' & "') do (set guid1=%%i) &powercfg -setdcvalueindex %guid1% fea3413e-7e05-4911-9a71-700331f1c294 0e796bdb-100d-47d6-a2d5-f7d2daa51f51 0 &powercfg -setacvalueindex %guid1% fea3413e-7e05-4911-9a71-700331f1c294 0e796bdb-100d-47d6-a2d5-f7d2daa51f51 0"
Run(@ComSpec & ' /c ' & $Str, '', 0)

fybhwsx 发表于 2014-1-8 22:09:49

回复fybhwsx


    这样?
afan 发表于 2014-1-8 22:01 http://www.autoitx.com/images/common/back.gif


    谢谢,还是不行。看来现在只能手动右键——以管理员身份运行bat了。

joyran 发表于 2014-1-8 22:41:11

呵呵!大家都很给力啊!

vuivui 发表于 2014-1-9 09:37:25

调用bat文件,与你转换成AU3代码的要求是不相符的。
先要把cmd脚本转成单行命令,然后再用run语句执行。注意要用“/V:ON/c ”参数和“setlocal enabledelayedexpansion”延缓环境变量扩展,%×%要换成!×!。
请参阅:调用cmd(dos)命令详解

fybhwsx 发表于 2014-1-9 11:08:52

调用bat文件,与你转换成AU3代码的要求是不相符的。
先要把cmd脚本转成单行命令,然后再用run语句执行。注 ...
vuivui 发表于 2014-1-9 09:37 http://www.autoitx.com/images/common/back.gif


    谢谢,学习中。。如果您能给出实现的代码,那就更好了。。

fybhwsx 发表于 2014-1-10 09:10:30

本帖最后由 fybhwsx 于 2014-1-10 09:16 编辑

这回彻底解决了,不是au3的问题,是电源命令问题!;电源设置

Run(@ComSpec & " /c " & 'powercfg -h off', "", @SW_HIDE);禁用休眠
Sleep(50)
;Run(@ComSpec & " /c " & 'POWERCFG /CHANGE hibernate-timeout-ac 0', "", @SW_HIDE);从不休眠
;Sleep(50)
;Run(@ComSpec & " /c " & 'POWERCFG /CHANGE hibernate-timeout-dc 0', "", @SW_HIDE);从不休眠
;Sleep(50)

Run(@ComSpec & " /c " & 'POWERCFG -SETACVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e fea3413e-7e05-4911-9a71-700331f1c294 0e796bdb-100d-47d6-a2d5-f7d2daa51f51 0', "", @SW_HIDE);唤醒时不需要密码
Sleep(50)
Run(@ComSpec & " /c " & 'POWERCFG -SETDCVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e fea3413e-7e05-4911-9a71-700331f1c294 0e796bdb-100d-47d6-a2d5-f7d2daa51f51 0', "", @SW_HIDE);唤醒时不需要密码
Sleep(50)
Run(@ComSpec & " /c " & 'POWERCFG -SETACVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 238c9fa8-0aad-41ed-83f4-97be242c8f20 bd3b718a-0680-4d9d-8ab2-e1d2b4ac806d 1', "", @SW_HIDE);启用唤醒定时器
Sleep(50)
Run(@ComSpec & " /c " & 'POWERCFG -SETDCVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 238c9fa8-0aad-41ed-83f4-97be242c8f20 bd3b718a-0680-4d9d-8ab2-e1d2b4ac806d 1', "", @SW_HIDE);启用唤醒定时器
Sleep(50)
Run(@ComSpec & " /c " & 'POWERCFG -SETACVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 0012ee47-9041-4b5d-9b77-535fba8b1442 6738e2c4-e8a5-4a42-b16a-e040e769756e 0', "", @SW_HIDE);从不关闭硬盘
Sleep(50)
Run(@ComSpec & " /c " & 'POWERCFG -SETDCVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 0012ee47-9041-4b5d-9b77-535fba8b1442 6738e2c4-e8a5-4a42-b16a-e040e769756e 0', "", @SW_HIDE);从不关闭硬盘
Sleep(50)
Run(@ComSpec & " /c " & 'POWERCFG -SETACVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 4f971e89-eebd-4455-a8de-9e59040e7347 5ca83367-6e45-459f-a27b-476b1d01c936 3', "", @SW_HIDE);合上盖子关机
Sleep(50)
Run(@ComSpec & " /c " & 'POWERCFG -SETDCVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 4f971e89-eebd-4455-a8de-9e59040e7347 5ca83367-6e45-459f-a27b-476b1d01c936 3', "", @SW_HIDE);合上盖子关机
Sleep(50)
Run(@ComSpec & " /c " & 'POWERCFG -SETACVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 7516b95f-f776-4464-8c53-06167f40cc99 aded5e82-b909-4619-9949-f5d71dac0bcb 0', "", @SW_HIDE);显示器亮度(0)
Sleep(50)
Run(@ComSpec & " /c " & 'POWERCFG -SETDCVALUEINDEX 381b4222-f694-41f0-9685-ff5bb260df2e 7516b95f-f776-4464-8c53-06167f40cc99 aded5e82-b909-4619-9949-f5d71dac0bcb 0', "", @SW_HIDE);显示器亮度(0)
Sleep(50)
Run(@ComSpec & " /c " & 'POWERCFG -setactive 381b4222-f694-41f0-9685-ff5bb260df2e', "", @SW_HIDE);激活电源方案

fybhwsx 发表于 2014-1-10 09:16:06

这是为无人值守设计的电源方案。用计划任务定时唤醒睡眠状态的笔记本,进行自动交易用的。希望能帮助到需要的朋友。。

weeks1 发表于 2014-1-13 13:51:43

谢谢,已经使用。。。
页: [1]
查看完整版本: 【已解决】唤醒不需要输入密码的批处理,怎样换成AU3执行代码?