Sys
This page is about the Sys class available in PeyrSharp.Env. You can find here all of its methods and properties.
INFO
This class is static.
Compatibility
The Sys class is part of the PeyrSharp.Env module, and is compatible with all of these frameworks and platforms:
| Package/Platform | Windows | macOS | Linux + others |
|---|---|---|---|
| Env | ✅ | ⚠️ | ⚠️ |
| Framework | .NET 6 | .NET 7 | .NET 8 |
| Env | ✅ | ✅ | ✅ |
WARNING
Some methods, classes or features of PeyrSharp.Env might not be available in all platforms.
Methods
ExecuteAsAdmin(process)
Definition
Executes a program in administrator mode.
WARNING
This method only works on Windows.
Arguments
| Type | Name | Meaning |
|---|---|---|
Process | process | The process to launch as admin. |
Usage
using PeyrSharp.Env;
// Define a process
Process p = new();
p.StartInfo.FileName = "notepad.exe";
Sys.ExecuteAsAdmin(p);ExecuteAsAdmin(fileName)
Definition
Executes a program in administrator mode.
WARNING
This method only works on Windows.
Arguments
| Type | Name | Meaning |
|---|---|---|
string | fileName | The path to the program to launch in admin mode. |
Usage
using PeyrSharp.Env;
Sys.ExecuteAsAdmin("notepad.exe");LaunchUWPApp(packageFamilyName, applicationID)
Definition
This method allows you to launch an UWP app from its PackageFamilyName and its Application Id. You can find this information by running in Windows Powershell (admin) the following command:
Get-AppxPackage | Select PackageFamilyName, InstallLocationYou can find the Application Id in the AppxManifest.xml file in
InstallLocation\AppxManifest.xmlWARNING
This method only works on Windows.
Arguments
| Type | Name | Meaning |
|---|---|---|
string | packageFamilyName | The PackageFamilyName property. |
string | applicationID | The Application Id property in the UWP AppxManifest.xml file. |
Usage
using PeyrSharp.Env;
Sys.LaunchUWPApp("Microsoft.MinecraftUWP_8wekyb3d8bbwe", "App"); // Launch Minecraft UWPLaunchUWPApp(uwpApp)
Definition
Launches a UWP application using information from a UwpApp object.
WARNING
This method only works on Windows.
Arguments
| Type | Name | Meaning |
|---|---|---|
UwpApp | uwpApp | The UWP application to launch. |
Usage
using PeyrSharp.Env;
Sys.LaunchUWPApp(myApp);IsProcessRunning(processName)
Definition
Gets if a specified process name is currently running. Returns a bool value indicating whether the process is running (true) or not running (false).
Arguments
| Type | Name | Meaning |
|---|---|---|
string | processName | The process name to find. |
Usage
using PeyrSharp.Env;
bool isNotepadRunning = Sys.IsProcessRunning("notepad");TerminateProcess(processId)
Definition
Terminates a process with the specified process ID. Returns True if the process was successfully terminated, or False if no such process was found or if an error occurred while trying to terminate the process.
Arguments
| Type | Name | Meaning |
|---|---|---|
int | processId | The ID of the process to terminate. |
Usage
using PeyrSharp.Env;
int processId = 12345;
bool result = Sys.TerminateProcess(processId);GetUwpAppsAsync()
Definition
Retrieves a list of UWP (Universal Windows Platform) apps asynchronously. Returns a task that represents the asynchronous operation. The task result contains a list of UwpApp objects representing the UWP apps.
WARNING
This method only works on Windows 10 and higher.
This method retrieves a list of UWP apps on the system using PowerShell. It saves the app information in a JSON file and then reads the file to deserialize it into a list of UwpApp objects. The list is then sorted alphabetically based on the app names before being returned.
This is the PowerShell command that is called:
Get-StartApps | ConvertTo-Json > $env:appdata\UwpApps.jsonUsage
using PeyrSharp.Env;
internal static async void Main()
{
List<UwpApp> appsList = await Sys.GetUwpAppsAsync();
}Properties
CurrentOperatingSystem
Definition
public static OperatingSystems CurrentOperatingSystem { get; }Gets the current Operating system. Returns a OperatingSystems value. You can only get this property.
Usage
using PeyrSharp.Env;
if (Sys.CurrentOperatingSystem == OperatingSystems.Windows)
{
Console.WriteLine("You are on Windows");
}CurrentWindowsVersion
Definition
public static WindowsVersion CurrentWindowsVersion { get; }Gets the current Windows version. Returns a WindowsVersion value. You can only get this property.
WARNING
This property only works on Windows.
DANGER
This property only works if you specify in the Application Manifest, in the compatibility section, that Windows 8, 8.1 and 10/11 are compatible with the software. Otherwise, it will return Windows8.
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>Usage
using PeyrSharp.Env;
if (Sys.CurrentWindowsVersion == WindowsVersion.Windows11)
{
Console.WriteLine("You are on Windows 11");
}IsDarkThemeSupported
Definition
public static bool IsDarkThemeSupported { get; }Gets if the current Windows version supports dark theme. Returns a bool value. You can only get this property.
WARNING
This property only works on Windows.
Usage
using PeyrSharp.Env;
if (Sys.IsDarkThemeSupported)
{
Console.WriteLine("You are running Windows 10 or higher.");
}CurrentTheme
Definition
[SupportedOSPlatform("windows")]
public static SystemThemes CurrentTheme { get; }Gets the current theme. Returns a SystemThemes value. You can only get this property.
WARNING
This property only works on Windows 10/11.
Usage
using Microsoft.Win32;
using PeyrSharp.Env;
if (Sys.CurrentTheme == SystemThemes.Light)
{
Console.WriteLine("The current theme is light.");
}
else if (Sys.CurrentTheme == SystemThemes.Dark)
{
Console.WriteLine("The current theme is dark.");
}
else
{
Console.WriteLine("The current theme is unknown."); // Might happen on other versions than Windows 10/11
}RunningProcesses
Definition
public static Process[] RunningProcesses { get; }Gets the processes that are currently running. Returns a Process[] array. You can only get this property.
Usage
using PeyrSharp.Env;
Process[] procs = Sys.RunningProcesses;
for (int i = 0; i < procs.Length; i++)
{
Console.WriteLine(procs[i].ProcessName); // Print the name of all running processes
}RunningProcessesNames
Definition
public static string[] RunningProcessesNames { get; }Gets the names of the processes that are currently running. Returns a string[] array. You can only get this property.
Usage
using PeyrSharp.Env;
string[] procs = Sys.RunningProcessesNames;
for (int i = 0; i < procs.Length; i++)
{
Console.WriteLine(procs[i]); // Print the name of all running processes
}UnixTime
Definition
public static int Unix { get; }Gets the current UnixTime. Returns an int. You can only get this property.
Usage
using PeyrSharp.Env;
int unixTime = Sys.UnixTime;