Zum Hauptinhalt springen

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);