Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C# (http://www.go4expert.com/articles/c-sharp-tutorials/)
-   -   Hiding other windows in C# (http://www.go4expert.com/articles/hiding-windows-c-sharp-t973/)

shabbir 5Jul2006 13:05

Hiding other windows 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 22Nov2006 18:20

Re: Hiding other windows in C#
 
Works just great

eye_v_eye 4Apr2007 11:41

Re: Hiding other windows in C#
 
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 3Jun2009 14:47

Re: Hiding other windows in C#
 
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 13Nov2009 08:21

Re: Hiding other windows in C#
 
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 27Nov2009 12:45

Re: Hiding other windows in C#
 
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 27Nov2009 13:24

Re: Hiding other windows in C#
 
can we have a downloadable source code plz, if possible

shabbir 27Nov2009 13:50

Re: Hiding other windows in C#
 
Quote:

Originally Posted by sameer_havakajoka (Post 60791)
can we have a downloadable source code plz, if possible

Its just one API Call and so I did not had it.

sameer_havakajoka 27Nov2009 15:15

Re: Hiding other windows in C#
 
k f9, bt it ll be much useful for extreme beginners


All times are GMT +5.5. The time now is 20:23.