Click here to Skip to main content
15,399,462 members
Articles / Programming Languages / C#
Posted 23 May 2010

Tagged as


23 bookmarked

Desktop Manager Application

Rate me:
Please Sign up or sign in to vote.
4.18/5 (7 votes)
23 May 2010CPOL3 min read
Manage your desktop mess and create a virtual desktop


Sometimes users have too many windows open on the desktop and too many taskbar buttons and it become very difficult to work like this. In UNIX, there are 4 desktops that you can separate your open applications between. In Windows, there isn't a built-in solution, but you can make one.

This application allows you to control your processes' window's visual appearance while using windows operation system. By saying "visual appearance", I mean:

  1. The visual window on the desktop
  2. The task bar button
  3. The indication on the "Application" tab in the Windows Task Manager

The application allows you to divide the windows to categories and to control the categories as a separate unit.


  1. The first screen that will be present will show one category named "Windows" that includes all the opening processes at the current moment.


  2. Clicking on one of the items in the tree will hide all the visual appearances of the process and will change the text from black to grey.
  3. Right clicking on the "Windows" Category will allow you to open a new category or to Toggle all the open windows in "Windows" category. The Toggle menu item will allow hide/show all the visual appearances of the window.


  4. After adding up new categories, you can drag&drop windows to the categories and even add sub categories to them.

    In this example, I have created two categories under "Windows", "Desktop-1" and "Desktop-2" and one sub category under "Desktop-1" named "Sub Category".

    Under each one of these categories, I have added some process' windows.


    These categories can be treated as visual desktops. By clicking Toggle all on one of the categories, all the visual appearances of the process windows under them will be hidden. Clicking again on the toggle all menu item will show all the visual appearance again.

  5. The application saves the tree categories when the application is closed and loads them in the next startup.

Using the Code


The code is separated to two main folders, the Tree folder that holds classes that control the tree view maintenance and the tree view different items and the Windows folder that holds classes that control the collection of the open windows.

3.1 The Tree Folder Main Classes


  1. WindowsTreeManager: Control the TreeView item and signed to its events (mouse click, drag&drop, etc.).
  2. CategoryNode, WindowNode, RootNode: Inherits from TreeNode can be added to a TreeView.

WindowNode - holds a WindowTreeNodeDataItem.

CategoryNode - represents a category in the tree.


3.2 The Window Folder Main Classes

1. The classes that represent visual appearance of Windows


  1. IWindow: The interface contains the signature of get's methods for the window properties.
  2. IInteractiveWindow: The interface contains the signature of methods that represent the functionality of a window.
  3. Window: The class holds the properties of a Window.
  4. InteractiveWindow: Inherits- IWindow (window properties) and IInteractiveWindow (functionality).
  5. InteractiveWindowCollection and InteractiveWindowCollectionManager collect and manage a collection of InteractiveWindows.


2. The classes that provide the API interface


Points of Interest

The writers are two students in the Academic college of Tel Aviv Jaffa in Israel.

We will be more than happy to get comments about our work.


  • 24th May, 2010: Initial post


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Israel Israel
No Biography provided

Comments and Discussions

GeneralDon't work with win10 Pin
Mc Gwyn27-Apr-18 1:43
MemberMc Gwyn27-Apr-18 1:43 
QuestionGreat article, but it sounds like much more than it is.. Pin
samidi27-Aug-14 5:41
Membersamidi27-Aug-14 5:41 
GeneralMy vote of 5 Pin
LeChatdeNice24-May-11 4:40
MemberLeChatdeNice24-May-11 4:40 
GeneralMy vote of 4 Pin
dvptUml16-Apr-11 22:28
MemberdvptUml16-Apr-11 22:28 
For the article, but many resources.
Questiongood article but asafmichal someone has done this before on codeproject Pin
R&D Ninja8-Oct-10 20:28
MemberR&D Ninja8-Oct-10 20:28 
AnswerRe: good article but asafmichal someone has done this before on codeproject Pin
LeChatdeNice24-May-11 4:39
MemberLeChatdeNice24-May-11 4:39 
General[My vote of 1] Bug in application Pin
ashish8patil24-May-10 0:40
Memberashish8patil24-May-10 0:40 
GeneralRe: [My vote of 1] Bug in application Pin
asafmichal26-May-10 23:16
Memberasafmichal26-May-10 23:16 

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

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