8

我想最大化屏幕左侧的随机窗口。我可以从我的代码中使用 Windows Aero 功能吗?这个窗口可以像用鼠标一样最大化。我只想以编程方式做到这一点。

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

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

4

3 回答 3

6

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

尝试这个:

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

这会将当前窗口放在主屏幕的左侧。

然后只需将其添加到屏幕右侧即可。

Location = new Point(rect.Width, 0);
于 2013-08-19T12:28:25.973 回答
4

它不完全一样,但伪装得很好:

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);
于 2013-08-23T07:44:00.213 回答
0

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

于 2017-12-26T02:53:04.393 回答