如何更改其他程序窗口的大小?
我如何从我的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