我想在屏幕左侧最大化一个随机窗口。我可以从代码中使用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上尝试任务管理器)如上文所述工作。