C# 在Windows上保存打开的应用程序维度和位置,以便通过配置文件重新打开它们?

C# 在Windows上保存打开的应用程序维度和位置,以便通过配置文件重新打开它们?,c#,.net,windows,position,dimension,C#,.net,Windows,Position,Dimension,是否有办法通过脚本将应用程序打开到保存的一组尺寸和位置(在Windows上)?当然,我还想保存打开的应用程序的维度和位置——这是脚本的另一面。有什么建议吗?如果脚本无法在Windows计算机上完成此操作,是否有办法使用C#/.NET?查看。您可以使用对的User32.dll调用来完成此操作 例如: [DllImport("User32.dll")] public static extern IntPtr FindWindow(string className, string wi

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

查看。

您可以使用对的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);
    }
这将找到标题为“Untitled-Notepad”的窗口,将其移动到0,0,并将其调整为640x480。我已经添加了最少数量的PositionFlags和HWND标志,如果您需要更多,请查看我提供的链接,并以相同的方式添加它们:)


哦,要读出尺寸,看一下。下面是一个如何使用c#::的示例。

如果我正在制作应用程序(如果我理解正确的话)。相反,我正在寻找一种方法来询问应用程序:“您的维度和位置是什么”,然后告诉同一应用程序“设置您的维度和位置”。我可能希望有几个应用程序窗口的配置,或者热键一个脚本,可以在配置之间立即切换。我不相信有可能修改一个你没有编写(或破解)的程序,而且,我希望这是真的。嘿@Sheridan:)我终于做到了。如果你看看我的答案,你会发现这实际上是可能的,尽管我希望有一个很好的理由这样做,但是编写一个配置窗口管理器听起来很合理:)Luke