如何更改其他程序窗口的大小?

我如何从我的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或使用EnumWindowFindWindow API