Click here to Skip to main content
11,797,355 members (81,856 online)
Click here to Skip to main content

Window Unhidder

, 14 Feb 2006 30.7K 1.3K 38
Rate this:
Please Sign up or sign in to vote.
A utility to list and hide/unhide all application windows.

Window Unhidder


This program allows the user to hide-unhide any window that is running on the system. It also gives interesting information about programs' activities. Many programs use hidden windows, that sometimes may cause problems. With WindowUnhidder, you can hide-unhide, enable/disable any window, and get information about process, title, class, parent window, exec path, etc.


The first aim of this program was to find and unhide some windows. Once done, I saw that it could be useful to show all info I can get.

Using the code

The program is ready for use. Most part of the code is in the class CWindowUnhidderDlg. I know that some more classes could be implemented, but at the beginning it was a little app, and it was not necessary.

The part of the code where windows are searched for is shown here:

// search windows:
char title[512], titlepadre[512], clase[100];
HWND mWndPad = NULL;
HWND mWndSys = NULL;
mWnd = ::FindWindowEx(NULL,mWnd,NULL,NULL);

int ii=0;
while ( mWnd )
    ::GetWindowText(mWnd, title, 256);
    ::GetClassName(mWnd, clase, 100);
    CString vis = ::IsWindowVisible(mWnd)?'1':'0';
    CString ena = ::IsWindowEnabled(mWnd)?'1':'0';

    CString Cadena = "";
    mWndPad = mWnd;
    CString TitPad = "";
        mWndPad = ::GetParent(mWndPad);
        if (mWndPad)
                ::GetWindowText(mWndPad, titlepadre, 256);
        TitPad = titlepadre;
        Cadena = CString(mWndPad?CString((TitPad=="")?
                 "[no title]":TitPad):"[Desktop]") +
                 CString(" :: ") + Cadena;
    while (mWndPad);

    CString Tit = title;
    if(Tit=="")Tit="[no title]";

    DWORD wd=0;
    stringstream ss,ssw;
    ss << wd;
    CString proc;
    bool full = m_FullPath.GetCheck() != 0;
    proc = GetProcessName(wd,full);

    int col=0;
    ssw << "#" << uppercase << hex << (int)mWnd;


    mWnd = ::GetNextWindow(mWnd,GW_HWNDNEXT);

Points of Interest

It is interesting to see how some programs use hidden windows. I found a funny trick: try to hide the windows (you can sort the columns) with the class "Progman" or "Shell_TrayWnd"... you will see what happens with the desktop!


Thanks to Hugo Gonzalez Castro for his help.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Software Developer (Senior)
Spain Spain
Javier Jimenez Shaw. Born in Madrid in 1975. Civil engineer, is working developing financial algorithms for exotic products.

You may also be interested in...

Comments and Discussions

QuestionGreat Job! Pin
Bitterstamps5-Jun-07 18:44
memberBitterstamps5-Jun-07 18:44 
AnswerRe: Great Job! Pin
JJimenezShaw6-Jun-07 3:23
memberJJimenezShaw6-Jun-07 3:23 
GeneralSpelling Pin
hain21-Feb-06 12:00
memberhain21-Feb-06 12:00 
GeneralRe: Spelling Pin
JJimenezShaw21-Feb-06 12:36
memberJJimenezShaw21-Feb-06 12:36 
English is not my mother tongue, as you can imagine Roll eyes | :rolleyes:
Hugo Gonzalez Castro wrote the first version of this program, and chose the name... and I have found (just now) more programs called window unhider. I prefer this "ddifferent" name Wink | ;)

Thanks anyway.
GeneralOther tool... Pin
DuneAgent21-Feb-06 11:00
memberDuneAgent21-Feb-06 11:00 
GeneralGood work! Pin
Paul S. Vickery16-Feb-06 22:22
memberPaul S. Vickery16-Feb-06 22:22 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.151002.1 | Last Updated 14 Feb 2006
Article Copyright 2006 by JJimenezShaw
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid