如何更改其他程序窗口的大小?
我如何从我的C#程序中更改另一个程序 – 让我们说Skype的 – 窗口大小?
您可以使用MoveWindow (其中hWnd是您要移动的窗口):
[DllImport("user32.dll", SetLastError = true)] internal static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint); MoveWindow(ApplicationHandle, 600, 600, 600, 600, true);
如果您不知道窗口指针,则可以使用FindWindowfunction。
另外值得一读的是MSDN SetWindowPos (非常类似于MoveWindow)。
您需要获取其他程序的窗口句柄,使用Process.MainWindowHandle或FindWindow 。
有了这个,你可以PInvoke SetWindowPos()来移动,resize,改变窗口的Z顺序或最小/最大/恢复状态。
我会使用Windows Api SetWindowPos
检查一下: 在C#中使用SetWindowPos来移动窗口
当然首先您应该知道要resize的窗口的句柄,这可以通过多种方式完成,例如按名称获取进程,然后使用该进程的MainWindow或使用EnumWindow
或FindWindow
API
- 即使我分配变量,“使用未分配的局部变量”错误?
- 不知道如何修复此StackOverflowexception是未处理的错误
- 当DropDownStyle为Simple时,ToolStripCombobox显示在屏幕的左上角
- 在visual studio中重建app.config?
- 无法通过Hotmail / live.com / outlook.com发送电子邮件
- Nhibernate Session 01的夏天,为什么我得到NHibernate.Bytecode.ProxyFactoryFactoryNotConfiguredException?
- 为什么我在Visual Studio 2010中找不到或使用UrlEncode?
- .net DropDownList在回发后被清除
- 通过参考?