Files
TheXamlGuy.TaskbarGroup/TheXamlGuy.TaskbarGroup.Core/SystemInformationHelper.cs
T
dan_clark@outlook.com 40d8caf1e0 Set up IHostEnvironment
2022-03-27 15:44:43 +01:00

33 lines
1.2 KiB
C#

using System.Runtime.InteropServices;
using Windows.Foundation;
using Windows.Win32;
using Windows.Win32.Foundation;
using Windows.Win32.UI.WindowsAndMessaging;
namespace TheXamlGuy.TaskbarGroup.Core
{
internal static class SystemInformationHelper
{
private const int SPI_GETWORKAREA = 48;
public static Windows.Foundation.Rect VirtualScreen => GetVirtualScreen();
public static Windows.Foundation.Rect WorkingArea => GetWorkingArea();
private static Windows.Foundation.Rect GetVirtualScreen()
{
var size = new Size(PInvoke.GetSystemMetrics(SYSTEM_METRICS_INDEX.SM_CXSCREEN), PInvoke.GetSystemMetrics(SYSTEM_METRICS_INDEX.SM_CYSCREEN));
return new Windows.Foundation.Rect(0, 0, size.Width, size.Height);
}
private static Windows.Foundation.Rect GetWorkingArea()
{
var rect = new RECT();
SystemParametersInfo(SPI_GETWORKAREA, 0, ref rect, 0);
return new Windows.Foundation.Rect(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top);
}
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern bool SystemParametersInfo(int nAction, int nParam, ref RECT rc, int nUpdate);
}
}