Сохранить размеры и позиции открытых приложений в Windows, чтобы открыть их через файл конфигурации? - PullRequest
0 голосов
/ 23 ноября 2011

Есть ли способ открыть приложение с сохраненным набором размеров и позиций (в Windows) с помощью скрипта?Я также хотел бы, конечно, сохранить размеры и позиции открытых приложений - другую сторону этого скрипта.Какие-либо предложения?Если сценарий не может сделать это на компьютере с Windows, есть ли способ с C # /. NET?

Ответы [ 2 ]

1 голос
/ 25 ноября 2011

Вы можете сделать это с помощью вызова User32.dll для SetWindowPos .

Например:

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

Это найдет окно с заголовком «Без названия - Блокнот», переместит его в 0, 0 и изменит его размер до 640x480. Я добавил минимальное количество флагов PositionFlags и HWND, посмотрите на предоставленную мной ссылку, если вам нужно больше, и добавьте их таким же образом:)

О, и чтобы прочитать размеры, взгляните на GetWindowRect . Вот пример того, как использовать это из c #: Пример .

1 голос
/ 23 ноября 2011

Взгляните на Application Settings.

...