Cómo limitar los límites de la pantalla en C# (SetWorkingArea)

29 02 2008

El objetivo es limitar el área usable de Windows, por ejemplo, cuando abres el ampliador de Windows te limita ese espacio de modo que no puedes subir el cursor encima de donde empieza el Ampliador y si maximizas una ventana no ocupa ese espacio.

Es algo que estuve buscando durante bastante tiempo por Internet y lo acabé encontrando, pero me costó mucho encontrar un código, y después tuve que traducirlo a C#. Para contribuir un poco a la comunidad voy a poner el código que me ha quedado porque quizás a alguien le sirva.

public class SetWorkingAreaClass
{
private const short SPI_SETWORKAREA = 0x2f;
private const bool SPIF_change = true;
private const int SPIF_SENDWININICHANGE = 2;
private const int SPIF_UPDATEINIFILE = 1;
public static void SetWorkingArea(Rectangle rect)
{
RECT RECT_Renamed;
RECT_Renamed.Bottom = rect.Height;
RECT_Renamed.Top = rect.Top;
RECT_Renamed.Left = rect.Left;
RECT_Renamed.Right = rect.Width;
int v = SystemParametersInfo(0x2f, 1, ref RECT_Renamed, 3);
}
[DllImport("user32", EntryPoint = "SystemParametersInfoA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
private static extern int SystemParametersInfo(int uAction, int uParam, ref RECT lpvParam, int fuWinIni);
[StructLayout(LayoutKind.Sequential)]
private struct RECT
{
public int Left;
public int Top;
public int Right;
public int Bottom;
}
}

Necesita los siguientes imports:

using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;


Acciones

Información

Deja un comentario