有没有办法当电池电量低于一定水平时自动退出两个程序?

有没有办法当电池电量低于一定水平时自动退出两个程序?

我正在设置一台装有 Windows 7 的新笔记本电脑,并且正在使用雨量计在侧边栏显示系统信息(CPU、内存、GPU 信息等)。这需要在后台运行 MSI Afterburner 才能访问 GPU 统计数据。

无论如何,我意识到所有这些额外的软件可能会缩短我的电池寿命,所以我正在寻找一种方法,当电池电量低于一定水平(例如 50%)时自动退出这两个程序(Rainmeter 和 MSI)。我使用 Autohotkey 做其他事情,但尚未找到使用该程序或任何其他程序的解决方案。

还有想法吗?

答案1

这是一个脚本,当电池电量低于 50% 时,它将关闭 2 个进程。

SetTimer, CheckBatteryLevel, 2000
Return

CheckBatteryLevel:

    VarSetCapacity(powerstatus, 1+1+1+1+4+4)
    success := DllCall("kernel32.dll\GetSystemPowerStatus", "uint", &powerstatus)
    batteryLifePercent := ReadInteger(&powerstatus,2,1,false)

    if (batteryLifePercent < 50)
    {
        KillIfExists("Rainmeter.exe")
        KillIfExists("MSI.exe")
    }
    Return

KillIfExists(p)
{    
    Process, Exist, % p
    If (ErrorLevel)
        Process, Close, % p
}

ReadInteger( p_address, p_offset, p_size, p_hex=true )
{
    value = 0
    old_FormatInteger := a_FormatInteger
    if ( p_hex )
    SetFormat, integer, hex
    else
    SetFormat, integer, dec
    loop, %p_size%
    value := value+( *( ( p_address+p_offset )+( a_Index-1 ) ) << ( 8* ( a_Index-1 ) ) )
    SetFormat, integer, %old_FormatInteger%
    return, value
} 

我修改了这个帖子

答案2

看看这个。http://batterysaver.codeplex.com/
让您能够根据电池电量耗尽情况终止进程。
该程序处于开发初期,用户使用体验并不友好,但它仍然可以完成工作,值得称赞瑞安·埃默里感谢他在开发上的辛勤工作。您必须以管理员身份运行该程序并进行一些操作才能使其正常运行。

来源:有没有办法在电源事件发生时执行程序?

答案3

这个答案是针对 Rainmeter 的。我没有测试过,但是插件可以测量电池百分比。您可以创建一个皮肤,用于if测量电池何时低于某个百分比,然后打开一个 exe,这将是一个 Autohotkey 程序来关闭 Rainmeter。

我知道这个问题已经过时了,但我想为有同样问题的人提供一些意见。我没有测试过,但我认为没有理由它不起作用。

相关内容