System
Sammlung von C#-Klassen zur Ausführung von Systemoperationen.
Installation
Install-Package FrApp42.System
Verwendung
Avake
Mit dieser Klasse kannst du den Ruhezustand von Rechnern steuern.
warnung
Funktioniert nur unter Windows.
V1
Einfache Verwendung
Program.cs
using FrApps42.System.Computer.Awake.v1;
...
// Keep Screen on
Awake.SetIndefiniteKeepAwake(true);
// Keep Screen off
Awake.SetIndefiniteKeepAwake(false);
// Disable Keep Awake
Awake.SetNoKeepAwake();
...
Awake.CompleteExit(0, false, "AppName");
Awake-Fehler protokollieren
Program.cs
using FrApps42.System.Computer.Awake.v1;
...
private static void LogUnexpectedOrCancelledKeepAwakeThreadCompletion(){
Console.WriteLine("The keep-awake thread was terminated early.");
}
private static void LogCompletedKeepAwakeThread(bool result)
{
Console.WriteLine($"Exited keep-awake thread successfully: {result}");
}
// Keep Screen on
Awake..SetIndefiniteKeepAwake(LogCompletedKeepAwakeThread, LogUnexpectedOrCancelledKeepAwakeThreadCompletion,true);
// Keep Screen off
Awake..SetIndefiniteKeepAwake(LogCompletedKeepAwakeThread, LogUnexpectedOrCancelledKeepAwakeThreadCompletion,false);
// Disable Keep Awake
Awake.SetNoKeepAwake();
...
Awake.CompleteExit(0, false, "AppName");
V2
info
Deaktiviere in V2 unbedingt KeepAwake, bevor die Anwendung geschlossen wird.
Aktualisierte Version von Power Awake
Program.cs
using FrApps42.System.Computer.Awake.v1;
...
private static void LogUnexpectedOrCancelledKeepAwakeThreadCompletion(){
Console.WriteLine("The keep-awake thread was terminated early.");
}
private static void LogCompletedKeepAwakeThread(bool result)
{
Console.WriteLine($"Exited keep-awake thread successfully: {result}");
}
// Keep Screen on
Awake.SetIndefiniteKeepAwake(true);
// Keep Screen off
Awake.SetIndefiniteKeepAwake(false);
// Keep Awake for a specified seconds with screen on
Awake.SetTimedKeepAwake(3600, true);
// Keep Awake for a specified seconds with screen off
Awake.SetTimedKeepAwake(3600, false);
// Disable Keep Awake
Awake.SetNoKeepAwake();
IsOnline
Damit kannst du per Ping prüfen, ob ein Rechner online ist.
Prüfen, ob ein Gerät online ist
Program.cs
using FrApp42.System.Net;
string address = "your-address";
string timeout = 5;
IsOnline online = new(address, timeout);
bool isOnline = online.Check();
Shutdown (nur Windows)
Mit dieser Klasse kannst du Windows-Rechner aus der Ferne herunterfahren.
warnung
Funktioniert nur auf Windows-Rechnern.
Einen bestimmten Computer herunterfahren
Program.cs
using FrApp42.System.Computer.Shutdown;
string hostname = "your-hostame";
Shutdown shutdown = new();
shutdown
.SetMachine(hostname)
.ShutdownComputer();
ShutdownResult result = await shutdown.Run();
if (result.ExitCode == 0)
{
Console.WriteLine("Shutdown command executed successfully.");
}
else
{
Console.WriteLine($"Shutdown command failed with exit code {result.ExitCode}. Error: {result.ErrorMessage}");
}
Ping vor dem Herunterfahren
using FrApp42.System.Computer.Shutdown;
string hostname = "your-hostame";
Shutdown shutdown = new();
shutdown
.SetMachine(hostname)
.PingBefore(5);
ShutdownResult result = await shutdown.Run();
if (result.ExitCode == 0)
{
Console.WriteLine("Shutdown command executed successfully.");
}
else
{
Console.WriteLine($"Shutdown command failed with exit code {result.ExitCode}. Error: {result.ErrorMessage}");
}
Den aktuellen Benutzer abmelden
Program.cs
using FrApp42.System.Computer.Shutdown;
Shutdown shutdown = new();
shutdown
.LogoutUser();
ShutdownResult result = await shutdown.Run();
if (result.ExitCode == 0)
{
Console.WriteLine("Shutdown command executed successfully.");
}
else
{
Console.WriteLine($"Shutdown command failed with exit code {result.ExitCode}. Error: {result.ErrorMessage}");
}
Herunterfahren und automatisch anmelden
Program.cs
using FrApp42.System.Computer.Shutdown;
Shutdown shutdown = new();
shutdown
.ShutdownAndSignOn();
ShutdownResult result = await shutdown.Run();
if (result.ExitCode == 0)
{
Console.WriteLine("Shutdown command executed successfully.");
}
else
{
Console.WriteLine($"Shutdown command failed with exit code {result.ExitCode}. Error: {result.ErrorMessage}");
}
Zeitlimit und eigenen Grund für das Herunterfahren festlegen
Program.cs
using FrApp42.System.Computer.Shutdown;
Shutdown shutdown = new();
shutdown
.SetTimeOut(60)
.SetComment("Scheduled maintenance");
ShutdownResult result = await shutdown.Run();
if (result.ExitCode == 0)
{
Console.WriteLine("Shutdown command executed successfully.");
}
else
{
Console.WriteLine($"Shutdown command failed with exit code {result.ExitCode}. Error: {result.ErrorMessage}");
}
WakeOnLan
Mit dieser Klasse kannst du einen Rechner über seine MAC-Adresse per Wake-on-LAN einschalten.
Program.cs
using FrApp42.System.Net;
string macAddress = "your-mac-address";
await WakeOnLan.WakeUp(macAddress);