Windows 脚本禁止屏幕保护 禁止睡眠
(2014-08-03 15:01:19)
标签:
域策略阻止屏保运行禁止睡眠禁止屏保it |
分类: WIN |
Windows 脚本禁止屏幕保护
禁止睡眠
公司的电脑域策略屏保时间设置的超级短
很崩溃
研究使用脚本禁止屏保
需要调用Win32 API
SetThreadExecutionState
具体参数可参考后附MSDN
考虑VBS和powershell
调用API
最后发现VBS实现可能比较困难遂放弃
PowerShell 首先要开启执行
否则什么脚本也不能运行
管理员方式启动 power shell
Get-ExecutionPolicy
Restricted.
Set-ExecutionPolicy
unrestricted
Get-ExecutionPolicy
Unrestricted.
这样就行了
脚本如下 按照参数要求调用即可
$code=@'
[DllImport("kernel32.dll", CharSet = CharSet.Auto,SetLastError
= true)]
'@
$ste = Add-Type -memberDefinition $code -name System
-namespace Win32 -passThru
$ES_CONTINUOUS = [uint32]"0x80000000"
$ES_AWAYMODE_REQUIRED = [uint32]"0x00000040"
$ES_DISPLAY_REQUIRED = [uint32]"0x00000002"
$ES_SYSTEM_REQUIRED = [uint32]"0x00000001"
$ste::SetThreadExecutionState($ES_CONTINUOUS -bor
$ES_AWAYMODE_REQUIRED)
另附C#代码
[c-sharp] view plaincopy
//定义API函数
[DllImport("kernel32.dll")]
static extern uint SetThreadExecutionState(uint esFlags);
const uint ES_SYSTEM_REQUIRED = 0x00000001;
const uint ES_DISPLAY_REQUIRED = 0x00000002;
const uint ES_CONTINUOUS = 0x80000000;
//播放时调用
SetThreadExecutionState(ES_CONTINUOUS | ES_DISPLAY_REQUIRED |
ES_SYSTEM_REQUIRED);
//播放结束后调用
SetThreadExecutionState(ES_CONTINUOUS);
==转=====================
SetThreadExecutionState function
SetThreadExecutionState Powershell
阻止屏保运行、显示器和系统待机