用程序最大化屏幕一半上的窗口

本文关键字:窗口 一半 屏幕 程序 最大化 | 更新日期: 2023-09-27 18:28:07

我想在屏幕左侧最大化一个随机窗口。我可以从代码中使用Windows Aero函数吗?此窗口可以像使用鼠标一样最大化。我只想通过编程来实现这一点。

我使用C#,我可以得到窗口的IntPtr

如果可能的话,不需要伪造鼠标或键盘输入

用程序最大化屏幕一半上的窗口

这可以在没有p/invoke的情况下完成。

试试这个:

Rectangle rect = Screen.PrimaryScreen.WorkingArea;
rect.Width = rect.Width / 2;
Bounds = rect;

这将使当前窗口位于主屏幕的左侧。

然后把这个添加到屏幕的右边。

Location = new Point(rect.Width, 0);

这并不完全相同,但伪造得很好:

ShowWindow(handle, SW_MAXIMIZE);
// for a split second you might see a maximized window here
MoveWindow(handle, 0, 0, Screen.PrimaryScreen.WorkingArea.Width / 2, Screen.PrimaryScreen.WorkingArea.Height, true);

实时放置将需要繁重的工作,尤其是对于非子进程。示例-www.ishadow.com/vdm。对于最大化窗口位置的手动"修复",ShowWindow(hWnd,SW_MAXIMIZE)之后的MoveWindow(hWrnd,startPos,0,winWidth,winHeight,true)通常(在windows 10上尝试任务管理器)如上文所述工作。