Acionando tarefas e executando programas quando o Windows 7 está conectado ou desconectado? [duplicado]

3

Existe um evento do Windows que eu possa assistir no Agendador de Tarefas que será acionado quando a energia estiver conectada? E um evento quando a energia é desconectada?

Eu quero começar e parar o CrashPlan enquanto estiver usando a energia da bateria. (Este foi um pedido de recurso de 2,5 anos de idade em CrashPlan e honestamente eu não posso esperar que eles o adicionem.)

Outros também perguntaram anteriormente como desativar SuperFetch e Indexação de pesquisa na energia da bateria. Eu acho que esse truque vai resolver essas questões também.

Existe um evento do tipo windows? Se não, pode haver um programa que eu possa instalar que detecte alterações de energia, que eu possa criar um gatilho do Agendador de Tarefas para.

    
por William C 14.02.2012 / 09:29

2 respostas

3

Por padrão, o Windows não registra um evento quando você desconecta ou conecta seu computador.

No entanto, com o PowerShell, você pode ouvir essa alteração e gravar seus próprios eventos no log. Este script fará isso:

New-EventLog -Source BatteryStatusMonitor -LogName Application

Function OnBatteryStatusChange ($NewStatus) {
  If ($NewStatus -eq 1) {
    $EventID = 5001
    $Message = "The computer was unplugged."
  } ElseIf ($NewStatus -eq 2) {
    $EventID = 5002
    $Message = "The computer was plugged in."
  } Else {
    $EventID = 5000
    $Message = "Battery status changed to $NewStatus"
  }
  Write-EventLog -LogName Application -Source BatteryStatusMonitor -EventID $EventID -Message $Message
}

$Query = "select * from __instancemodificationevent within 3 where targetinstance isa 'win32_battery' and targetinstance.batterystatus <> previousinstance.batterystatus"

Register-WmiEvent -Query $Query -Action {OnBatteryStatusChange $Event.SourceEventArgs.NewEvent.TargetInstance.BatteryStatus} -SourceIdentifier "BatteryStatusChange"

For (;;) {}
    
por 14.02.2012 / 17:40
0

Se você estiver interessado apenas em oferecer suporte ao Windows Vista e superior, registre eventos de energia .

Use RegisterPowerSettingNotification com o valor GUID_ACDC_POWER_SOURCE.

    
por 14.02.2012 / 15:35