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

时间:2011-12-09 09:33:26

标签: c# winapi

我如何更改另一个程序 - 比如我的C#程序中的Skype的窗口大小?

3 个答案:

答案 0 :(得分:23)

您可以使用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);

如果您不知道窗口指针,可以使用FindWindow功能。

另外值得阅读的是MSDN SetWindowPos(非常类似于MoveWindow)。

答案 1 :(得分:4)

您需要获取其他程序的窗口句柄,使用Process.MainWindowHandle或FindWindow

有了这个,您可以PInvoke SetWindowPos()移动,调整大小,更改窗口的Z顺序或最小/最大/恢复状态。

答案 2 :(得分:0)

我会使用Windows Api SetWindowPos

检查一下:Using SetWindowPos in C# to move windows around

当然首先您应该知道要调整大小的窗口的句柄,这可以通过多种方式完成,例如按名称获取流程,然后使用该流程的MainWindow或使用EnumWindow或{{1} } API