Как я могу изменить другую программу - скажем, размер окна 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