以编程方式最大化屏幕一半的窗口

Bit*_*lue 7 c# windows winapi aero

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

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

如果可能,不用伪造鼠标或键盘输入.

Nic*_*ler 5

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

试试这个:

Rectangle rect = Screen.PrimaryScreen.WorkingArea;
rect.Width = rect.Width / 2;
Bounds = rect;
Run Code Online (Sandbox Code Playgroud)

这会将当前窗口置于主屏幕的左侧.

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

Location = new Point(rect.Width, 0);
Run Code Online (Sandbox Code Playgroud)


Bit*_*lue 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);
Run Code Online (Sandbox Code Playgroud)