Click here to Skip to main content
Licence 
First Posted 3 Nov 2004
Views 208,021
Bookmarked 44 times

Hack Windows Task Manager

By | 3 Nov 2004 | Article
Delete all the Application and Processes names from being displayed in Windows Task Manager.

Sample Image - Hack_Windows_Task_Manager.jpg

Introduction

It may be carrying lots of fun if you are manipulating the Windows internals... Well, here's one simulation of the process and application name hiding.. Here, we hide the names of our application and our process, being displayed in the Windows Task Manager... in the SysListView32 control.

The code can be fabricated to just hack the Windows Task Manager which I'll deal later here.. Let's see the simple call that makes things happen.

How to use the code

All you have to do is run Windows Task Manager, then run Clear Task Manager, click "Hide" button.. and then look on Windows Task Manager...

Architecture

Here, we have to carry out just few tasks. The tasks are..

  1. Find the Windows Task Manager when ever it is displayed.
  2. Find the Applications and Processes tab controls.
  3. Move on to the SysListView32 control and delete the strings displayed over there..

We can accomplish these tasks by using one timer and one callback function. Well, carrying out these tasks is very simple as a lot of people know.

How it works..

Timer functions:

The timer is started when the dialog in initialized. The timer just vigils the Windows Task Manager for its window status ON, I mean WM_SHOW. It is carried out by the API call:

HWND FindWindow( LPCTSTR lpClassName , 
     // class name LPCTSTR lpWindowName // window name );

in which it is enough to pass either the class name or the window name. Here, we are familiar with window name "Windows Task Manager".

At last, we have found the window where our manipulation starts..

Enumerate child windows:

BOOL EnumChildWindows
(
  HWND hWndParent,         // handle to parent window
  WNDENUMPROC lpEnumFunc,  // callback function
  LPARAM lParam            // application-defined value
);

We are familiar with hWndParent which we received in the previous call FindWindow. We have to just take care of the callback function. And lparam parameter is NULL.

Handling callback function:

We have provided callback function to be:

BOOL CALLBACK EnumChildProcedure(HWND hWnd,LPARAM lParam)

Handle of particular window and lparam is NULL. Handle is assigned for each child window.

In the callback function, we require to know about the two tabs, that's all. The knowledge about the tabs can be had by just comparing the window name and its class name. The window name and the class of the child window can be had from:

char name[256]; 
GetWindowText(hWnd,name,256);

char ClassName[256];
GetClassName(hWnd,ClassName,256);

And then we compare the class name with the class name we have retrieved and the window name with the window name we have retrieved.

When both the conditions are satisfied, we get to the actual location where the Processes' names and the Applications' names are displayed.

Here, we send a message to Windows stating that the contents of the SysListView32 are to be deleted, by a standard API call..

::SendMessage(hWnd,LVM_DELETECOLUMN,(WPARAM)0,0);

hWnd is handle to window. LVM_DELETECOLUMN is the message to Windows to delete the contents of SysListView32. And the rest of the parameters are 0.

Now, we have send a message to Windows to delete the contents.. that's all, it's done.

Before I wind up, let's have a discussion about Windows Task Manager and real hacking.

Windows Task Manager calls or refreshes the processes list view every 0.5 seconds (maximum). So, if we set our timer's time more than 500 ms, we can see the deleting of the column of SysListView32 visually.

This program can be added to Windows startup or in the registry to invoke the program at Windows start up. Though, we have to modify certain parts of the program.

Modifications in the program:

  1. We have to hide our program window, this can be achieved by sending SW_HIDE message to our window.
  2. We can place this code either in Windows startup or in the registry. Though we can discard the calls made by Windows start up, we can't with Windows registry. The registry key is:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run.

    Placing our exe path in this key will start our code in startup.

License

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

Sheik Abdullah

Web Developer

India India

Member

Sheik Abdullah is B-Tech grad from Crescent Engineering College, Madras University, Chennai, India.
 
His current assignments is BioInformatics R&D software. He is familiar with DICOM which includes 2D image procesing. He programs VC++, COM and ATL for Software Gaint in BioInformatics based in Bangalore, India.
 
His hobbies include programming in VC++, hunting hidden treasures of Windows OS and computer games.


Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralMy vote of 4 PinmemberMember 808774311:54 15 Jul '11  
Generalhow to stop form refresh in vb.net windows application Pinmemberjayawant sawant0:36 29 Apr '11  
GeneralMy vote of 4 Pinmembersamq22:42 16 Nov '10  
GeneralMy vote of 1 Pinmembersickpsique7:08 15 Jul '10  
Generaltell me Pinmemberlevkozlodoev8:13 11 Mar '09  
Question!! Problem downloading the source code Pinmembermelanoleuca22:26 30 Jul '08  
AnswerRe: !! Problem downloading the source code Pinmemberfclngd1:52 17 Jan '09  
GeneralRe: !! Problem downloading the source code Pinmemberfclngd1:55 17 Jan '09  
AnswerRe: !! Problem downloading the source code Pinmemberfclngd2:00 17 Jan '09  
Questioncheck and verify if a selected application is running or not [modified] Pinmembergarimagupta22:58 26 Nov '07  
GeneralWhy booleans Pinmemberdellthinker3:21 17 Oct '07  
Generali just want to terminate an application Pinmemberrupesh_gangi2:49 7 Oct '07  
QuestionDelete a single Process.... PinmemberEA5122:58 19 Jan '07  
GeneralVC Guru PinmemberRajesh Sankaran Try3:11 26 Dec '06  
QuestionHow Can i get the index of perticular Process PinmemberNeeraj_ji22:10 12 Oct '06  
GeneralHello I want to delete specific entry from task manager PinmemberNeeraj_ji22:14 11 Oct '06  
GeneralRe: Hello I want to delete specific entry from task manager PinmemberZ3roXIII20:46 2 Jun '07  
Generalhide one process Pinmemberpunkcpp12:18 23 Feb '06  
GeneralRe: hide one process Pinmemberri_shu1:15 4 Apr '06  
i am having the same problem... actually tried getting the index in the list view using LVM_FINDITEM
but the end meassage always returns 0..
Help plz..
QuestionRe: hide one process Pinmemberpliu_20003:59 27 Jul '06  
AnswerRe: hide one process PinmemberThievingSix12:09 18 May '07  
GeneralRe: hide one process Pinmemberfclngd21:39 16 Jan '09  
QuestionRe: hide one process Pinmemberfclngd22:37 16 Jan '09  
NewsRe: hide one process Pinmemberfclngd1:33 17 Jan '09  
AnswerRe: hide one process Pinmemberwaqarmushtaq8423:59 1 Jul '09  

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.

Permalink | Advertise | Privacy | Mobile
Web02 | 2.5.120529.1 | Last Updated 3 Nov 2004
Article Copyright 2004 by Sheik Abdullah
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid