我如何更改另一个程序 - 比如我的C#程序中的Skype的窗口大小?
答案 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