c # - Gem åbne applikationsdimensioner og positioner i Windows for at genåbne dem via konfigurationsfilen?

Indlæg af Hanne Mølgaard Plasc

Problem



Er der mulighed for at åbne en applikation på et gemt sæt dimensioner og positioner (på Windows) via et script? Jeg vil selvfølgelig også gemme dimensioner og positioner for åbne applikationer - den anden side af dette script. Eventuelle forslag? Hvis et script ikke kan få det gjort på en Windows-maskine, er der en måde med C #/.NET?

Bedste reference


Du kan gøre dette ved at bruge et User32.dll-opkald til SetWindowPos. [3]


For eksempel:


    [DllImport("User32.dll")]
    public static extern IntPtr FindWindow(string className, string windowName);

    [DllImport("User32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool SetWindowPos(IntPtr windowHandle, IntPtr parentWindowHandle, int x, int y, int width, int height, PositionFlags positionFlags);

    public static readonly IntPtr HWND\_TOP = new IntPtr(0);

    [Flags]
    public enum PositionFlags : uint
    {
        ShowWindow = 0x40
    }

    static void Main(string[] args)
    {
        var windowHandle = FindWindow(null, "Untitled - Notepad");
        SetWindowPos(windowHandle, HWND\_TOP, 0, 0, 640, 480, PositionFlags.ShowWindow);
    }


Dette vil finde vinduet med titlen 'Untitled - Notepad', flyt det til 0, 0, og resize det til 640x480. Jeg har tilføjet det nøgne minimalt antal PositionFlags og HWND flag, se på linket, jeg gav, hvis du har brug for mere og tilføje dem på samme måde :)


Åh, og for at læse dimensionerne ud, tag et kig på GetWindowRect. Her er et eksempel på hvordan man bruger dette fra c #: Eksempel. [4] [5]

Andre referencer 1


Tag et kig på Application Settings. [6]