Sie können versuchen, einen Shell-Befehl in Ihrer VB.NET-Anwendung auszuführen, um einen Befehl ähnlich dem folgenden zu schälen:
powercfg -SETACTIVE
Gemäß den Informationen in diesem Artikel zu Energieschemas
Ich versuche, ein kleines Programm in VB.NET zu schreiben, das erkennt, wenn mein Laptop vom Stromnetz getrennt wurde, und den Energiesparplan auf Energiesparmodus und umgekehrt umstellt, wenn er an das Stromnetz angeschlossen ist.
Ich habe versucht, es durch die Registrierung mit diesem Code-Snippet zu tun
Select Case power_status.ACLineStatus Case 0 Dim CurrentPowerPlan As String = My.Computer.Registry.LocalMachine.OpenSubKey("SYSTEM").OpenSubKey("CurrentControlSet").OpenSubKey("Control").OpenSubKey("Power").OpenSubKey("User").OpenSubKey("PowerSchemes").GetValue("ActivePowerScheme") If CurrentPowerPlan <> "a1841308-3541-4fab-bc81-f71556f20b4a" Then Label1.Text = "Running On Battery" ChangePowerPlan("a1841308-3541-4fab-bc81-f71556f20b4a") 'Power Saver End If Case 1 Dim CurrentPowerPlan As String = My.Computer.Registry.LocalMachine.OpenSubKey("SYSTEM").OpenSubKey("CurrentControlSet").OpenSubKey("Control").OpenSubKey("Power").OpenSubKey("User").OpenSubKey("PowerSchemes").GetValue("ActivePowerScheme") If CurrentPowerPlan <> "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c" Then Label1.Text = "Connected To NEPA" ChangePowerPlan("8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c") 'High Performance End If 'Case 255 'MessageBox.Show("Unknown") End Select
Aber es wirft diesen Fehler zurück
Requested registry access is not allowed.
Ich habe auch von einer Win32-Funktion `` "PowerSetActiveScheme" `gehört, aber ich weiß nicht, wie ich es VB.NET zuordnen kann.
Sie können versuchen, einen Shell-Befehl in Ihrer VB.NET-Anwendung auszuführen, um einen Befehl ähnlich dem folgenden zu schälen:
powercfg -SETACTIVE
Gemäß den Informationen in diesem Artikel zu Energieschemas