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