Как изменить размер другого окна программы?

Как я могу изменить другую программу - скажем, размер окна Skype - из моей программы на С#?

Ответ 1

Вы можете использовать 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).

Ответ 2

Вам нужно получить дескриптор окна другой программы, используйте Process.MainWindowHandle или FindWindow.

После этого вы можете PInvoke SetWindowPos() для перемещения, изменения размера, изменения положения Z-порядка или мин/макс/восстановления окна.

Ответ 3

Я бы использовал Windows Api SetWindowPos

проверьте это: Использование SetWindowPos в С# для перемещения окон вокруг

конечно, сначала вы должны знать дескриптор окна, которое вы хотите изменить, это можно сделать разными способами, например, получить процесс по имени, затем MainWindow этого процесса или с помощью API EnumWindow или FindWindow