Hiding other windows in C#

shabbir's Avatar author of Hiding other windows in C#
This is an article on Hiding other windows in C# in C#.
To start with include namespaces

Code: CSharp
using System.Diagnostics;               // For prcesss related information
using System.Runtime.InteropServices;   // For DLL importing
 
Now declare these variables

Code: CSharp
private const int SW_HIDE = 0;
Now declare win32 function ShowWindow

Code: CSharp
[DllImport("User32")]
private static extern int ShowWindow(int hwnd, int nCmdShow);
The above function accepts 2 parameters hWnd is handle of a window whose state we needs to be modified and nCmdShow contains integer value which denotes state. Here are the list of available states
Code:
SW_HIDE             0
SW_SHOWNORMAL       1
SW_NORMAL           1
SW_SHOWMINIMIZED    2
SW_SHOWMAXIMIZED    3
SW_MAXIMIZE         3
SW_SHOWNOACTIVATE   4
SW_SHOW             5
SW_MINIMIZE         6
SW_SHOWMINNOACTIVE  7
SW_SHOWNA           8
SW_RESTORE          9
SW_SHOWDEFAULT      10
SW_FORCEMINIMIZE    11
SW_MAX              11
Now the main problem is how to get handle of a particular window. Its simple

Process[] processRunning = Process.GetProcesses();

This will return array of all the processes. After this you can use foreach loop to iterate through each process in the array.

Code: CSharp
int hWnd;
Process[] processRunning = Process.GetProcesses();
foreach (Process pr in processRunning)
{
    if (pr.ProcessName == "notepad")
    {
        hWnd = pr.MainWindowHandle.ToInt32();
        ShowWindow(hWnd, SW_HIDE);
    }
}
Note Remember that it will just Hide the notepad process and not kill it. You need to be killing all the notepad.exe's running in the background through task manager. If you even wish to kill the process use
Code: CSharp
pr.Kill();
inside the if block.
cselvaraju's Avatar
Newbie Member
Works just great
eye_v_eye's Avatar, Join Date: Apr 2007
Newbie Member
Okie, I have success hide the application into the process list. Any idea how to bring it back from the process list. In another word restore/show back the application.

I have used the SW_RESTORE, it doesn't work.
booyeeka's Avatar, Join Date: Jun 2009
Newbie Member
Hi,

I have two errors related to this:
1. The name 'ShowWindow' does not exist in the current context
2. The name 'SW_HIDE' does not exist in the current context

Can you help me how to solve this, and what I did wrong?

Thank you in advance!
Imrul Kayser's Avatar, Join Date: Nov 2009
Newbie Member
I want able/ Disable local area connections (may be dial up or broadband) using C#
How can I do that?

I will be grateful if anyone help me
oasisfleeting's Avatar, Join Date: Nov 2009
Newbie Member
What about never letting another applications window pop up?
I have a magic jack and when a call is being made, (outgoing or incoming) the interface window pops up and interrupts my video games or movies. I want to permanently force this window to be hidden.
sameer_havakajoka's Avatar
Skilled contributor
can we have a downloadable source code plz, if possible
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
Quote:
Originally Posted by sameer_havakajoka View Post
can we have a downloadable source code plz, if possible
Its just one API Call and so I did not had it.
sameer_havakajoka's Avatar
Skilled contributor
k f9, bt it ll be much useful for extreme beginners