funerr
funerr

Reputation: 8156

How do I change another program's window's size?

How can I change another program's -- let's say Skype's -- window's size, from my C# program?

Upvotes: 17

Views: 41021

Answers (3)

Lloyd Powell
Lloyd Powell

Reputation: 18780

You can use MoveWindow (Where hWnd is the window you want to move):

[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);

If you don't know the window pointer, you can use the FindWindow functionality.

Also worth a read is MSDN SetWindowPos (Very similar to MoveWindow).

Upvotes: 27

Matten
Matten

Reputation: 17631

You need to get the window handle of the other program, use Process.MainWindowHandle or FindWindow.

Having this, you can PInvoke SetWindowPos() to move, resize, change the Z-order or the min/max/restore state of the window.

Upvotes: 4

Davide Piras
Davide Piras

Reputation: 44605

I would use the Windows Api SetWindowPos

check this one out: Using SetWindowPos in C# to move windows around

of course first you should know the handle of the window you want to resize, this can be done in many ways like getting the process by name then the MainWindow of that process or with EnumWindow or FindWindow APIs

Upvotes: 0

Related Questions