我想在屏幕左侧最大化随机窗口。我可以在代码中使用Windows Aero功能吗?此窗口可以最大化,就像使用鼠标一样。我只想以编程方式做到这一点。
我使用C#
,我可以获得窗口的IntPtr
。
如果可能,不用伪造鼠标或键盘输入。
答案 0 :(得分:5)
这可以在没有p / invoke的情况下完成。
试试这个:
Rectangle rect = Screen.PrimaryScreen.WorkingArea;
rect.Width = rect.Width / 2;
Bounds = rect;
这会将当前窗口置于主屏幕的左侧。
然后只需将其添加到屏幕右侧即可。
Location = new Point(rect.Width, 0);
答案 1 :(得分:3)
它并不完全相同,但假装很好:
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);
答案 2 :(得分:0)
对于实时展示位置需要繁重的工作,特别是对于非子进程。示例 - www.ishadow.com/vdm。对于手册"修复"最大化窗口位置MoveWindow(hWnd,startPos,0,winWidth,winHeight,true)经常在ShowWindow(hWnd,SW_MAXIMIZE)之后(在Windows 10上尝试任务管理器)如上所述。