0

有没有办法通过脚本将应用程序打开到一组已保存的尺寸和位置(在 Windows 上)?当然,我还想保存打开的应用程序的尺寸和位置——这个脚本的另一面。有什么建议么?如果脚本无法在 Windows 机器上完成此操作,是否有使用 C#/.NET 的方法?

4

2 回答 2

1

看看Application Settings

于 2011-11-23T00:16:38.520 回答
1

您可以使用对SetWindowPos的 User32.dll 调用来执行此操作。

例如:

    [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# 中使用它的示例:Example

于 2011-11-25T13:00:49.343 回答