├── _config.yml ├── resource.h ├── old ├── DevMgr.c ├── Setup.c ├── MYCOMP.BMP ├── MYCOMP.ICO ├── GetTypeInfo.c ├── SysSetup.h ├── DevMgr.dsw ├── DevMgr.h ├── GetTypeInfo.h ├── WDMSetup.h ├── resource.h ├── Util.h ├── Setup.h ├── SysSetup.c ├── DevMgr.dsp └── DevMgr.rc ├── res ├── info.bmp ├── main.bmp ├── Toolbar.bmp ├── buttons.bmp ├── Computer.bmp ├── Toolbar256.bmp ├── filelarge.bmp ├── filesmall.bmp ├── writelarge.bmp ├── writelarge.png ├── writesmall.bmp ├── writesmall.png ├── IntelliTask.ico ├── IntelliTask.png ├── IntelliTask.rc2 └── ribbon.mfcribbon-ms ├── IntelliTask.png ├── IntelliTask.rc ├── DeviceManager.png ├── hlp ├── IntelliTask.chm ├── Images │ └── Bullet.gif ├── IntelliTask.hhk ├── afx_hidd_find.htm ├── hid_next_pane.htm ├── hid_prev_pane.htm ├── hid_ht_nowhere.htm ├── afx_hidd_replace.htm ├── afx_hidd_color.htm ├── afx_hidd_font.htm ├── hid_edit_find.htm ├── hid_edit_clear.htm ├── hid_edit_redo.htm ├── hid_view_ruler.htm ├── hid_edit_clear_all.htm ├── hid_edit_replace.htm ├── hid_help_using.htm ├── hid_window_tile.htm ├── hid_sc_minimize.htm ├── hid_sc_maximize.htm ├── hid_window_cascade.htm ├── hid_window_tile_vert.htm ├── hid_app_about.htm ├── hid_window_tile_horz.htm ├── hid_edit_paste.htm ├── hid_sc_restore.htm ├── hid_edit_repeat.htm ├── hid_sc_move.htm ├── hid_sc_nextwindow.htm ├── afx_hidw_dockbar_top.htm ├── hid_edit_copy.htm ├── hid_sc_prevwindow.htm ├── afx_hidd_newtypedlg.htm ├── hid_edit_cut.htm ├── hid_window_all.htm ├── hid_window_arrange.htm ├── hid_sc_close.htm ├── hid_help_index.htm ├── scrollbars.htm ├── hid_file_send_mail.htm ├── hid_context_help.htm ├── afx_hidp_default.htm ├── hid_file_mru_file1.htm ├── hid_app_exit.htm ├── main_index.htm ├── hid_window_new.htm ├── hid_edit_undo.htm ├── menu_view.htm ├── hid_window_split.htm ├── afx_hidw_toolbar.htm ├── hid_file_save_as.htm ├── hid_view_toolbar.htm ├── menu_help.htm ├── hid_file_open.htm ├── hid_sc_size.htm ├── hid_view_status_bar.htm ├── hid_file_new.htm ├── hid_file_save.htm ├── hid_file_close.htm ├── menu_edit.htm ├── afx_hidd_fileopen.htm ├── afx_hidd_filesave.htm ├── hid_ht_caption.htm ├── hidr_doc1type.htm ├── menu_window.htm ├── IntelliTask.hhc ├── hid_sc_tasklist.htm ├── menu_file.htm ├── afx_hidw_status_bar.htm └── IntelliTask.hhp ├── InstalledPrograms.png ├── Release ├── IntelliTask.chm ├── IntelliTask.exe ├── genUp4win.dll └── WebView2Loader.dll ├── x64 └── Release │ ├── genUp4win.dll │ ├── IntelliTask.chm │ ├── IntelliTask.exe │ └── WebView2Loader.dll ├── .gitmodules ├── packages.config ├── .github └── FUNDING.yml ├── Messages.h ├── SortListCtrl.h ├── ChildView.h ├── Setup └── README.md ├── WebBrowserDlg.h ├── stdafx.cpp ├── CpuUsage.h ├── targetver.h ├── IntelliTask.h ├── CheckForUpdatesDlg.h ├── EnumProgramsDlg.h ├── ChildView.cpp ├── MFCListView.h ├── ProcessView.h ├── WebBrowserDlg.cpp ├── MainFrame.h ├── IntelliTask.sln ├── MFCListView.cpp ├── sinstance.h ├── ProcessList.h ├── stdafx.h ├── README.md ├── CheckForUpdatesDlg.cpp ├── VersionInfo.h ├── CpuUsage.cpp ├── HLinkCtrl.h ├── CODE_OF_CONDUCT.md ├── SortListCtrl.cpp ├── ReadMe.txt ├── SoftwareContentRegister.html ├── ProcessList.cpp ├── IntelliTask.html └── .gitignore /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman -------------------------------------------------------------------------------- /resource.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/resource.h -------------------------------------------------------------------------------- /old/DevMgr.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/old/DevMgr.c -------------------------------------------------------------------------------- /old/Setup.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/old/Setup.c -------------------------------------------------------------------------------- /res/info.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/res/info.bmp -------------------------------------------------------------------------------- /res/main.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/res/main.bmp -------------------------------------------------------------------------------- /IntelliTask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/IntelliTask.png -------------------------------------------------------------------------------- /IntelliTask.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/IntelliTask.rc -------------------------------------------------------------------------------- /old/MYCOMP.BMP: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/old/MYCOMP.BMP -------------------------------------------------------------------------------- /old/MYCOMP.ICO: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/old/MYCOMP.ICO -------------------------------------------------------------------------------- /res/Toolbar.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/res/Toolbar.bmp -------------------------------------------------------------------------------- /res/buttons.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/res/buttons.bmp -------------------------------------------------------------------------------- /DeviceManager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/DeviceManager.png -------------------------------------------------------------------------------- /old/GetTypeInfo.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/old/GetTypeInfo.c -------------------------------------------------------------------------------- /res/Computer.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/res/Computer.bmp -------------------------------------------------------------------------------- /res/Toolbar256.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/res/Toolbar256.bmp -------------------------------------------------------------------------------- /res/filelarge.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/res/filelarge.bmp -------------------------------------------------------------------------------- /res/filesmall.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/res/filesmall.bmp -------------------------------------------------------------------------------- /res/writelarge.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/res/writelarge.bmp -------------------------------------------------------------------------------- /res/writelarge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/res/writelarge.png -------------------------------------------------------------------------------- /res/writesmall.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/res/writesmall.bmp -------------------------------------------------------------------------------- /res/writesmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/res/writesmall.png -------------------------------------------------------------------------------- /hlp/IntelliTask.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/hlp/IntelliTask.chm -------------------------------------------------------------------------------- /res/IntelliTask.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/res/IntelliTask.ico -------------------------------------------------------------------------------- /res/IntelliTask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/res/IntelliTask.png -------------------------------------------------------------------------------- /res/IntelliTask.rc2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/res/IntelliTask.rc2 -------------------------------------------------------------------------------- /InstalledPrograms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/InstalledPrograms.png -------------------------------------------------------------------------------- /Release/IntelliTask.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/Release/IntelliTask.chm -------------------------------------------------------------------------------- /Release/IntelliTask.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/Release/IntelliTask.exe -------------------------------------------------------------------------------- /Release/genUp4win.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/Release/genUp4win.dll -------------------------------------------------------------------------------- /hlp/Images/Bullet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/hlp/Images/Bullet.gif -------------------------------------------------------------------------------- /x64/Release/genUp4win.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/x64/Release/genUp4win.dll -------------------------------------------------------------------------------- /Release/WebView2Loader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/Release/WebView2Loader.dll -------------------------------------------------------------------------------- /x64/Release/IntelliTask.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/x64/Release/IntelliTask.chm -------------------------------------------------------------------------------- /x64/Release/IntelliTask.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/x64/Release/IntelliTask.exe -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "genUp4win"] 2 | path = genUp4win 3 | url = https://github.com/mihaimoga/genUp4win.git 4 | -------------------------------------------------------------------------------- /x64/Release/WebView2Loader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mihaimoga/IntelliTask/HEAD/x64/Release/WebView2Loader.dll -------------------------------------------------------------------------------- /hlp/IntelliTask.hhk: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /hlp/afx_hidd_find.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Find Dialog) 6 | 7 | 8 | 9 | 10 | 11 |

Find dialog box

12 | 13 |

<< Write application-specific help here. >>

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/hid_next_pane.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Next Pane Command) 6 | 7 | 8 | 9 | 10 | 11 |

Next Pane

12 | 13 |

<< Write application-specific help here. >>

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/hid_prev_pane.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Prev Pane Command) 6 | 7 | 8 | 9 | 10 | 11 |

Prev Pane

12 | 13 |

<< Write application-specific help here. >>

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /old/SysSetup.h: -------------------------------------------------------------------------------- 1 | #ifndef __ICE_SYSSETUP_H 2 | #define __ICE_SYSSETUP_H 3 | // 4 | #pragma once 5 | // 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | // 10 | #include "devmgr.h" 11 | #include 12 | #include "util.h" 13 | // 14 | char StartDriver(const short, const short, const char*, const char*); 15 | char StopDriver(const char*); 16 | void* OpenDevice(const char*); 17 | // 18 | #ifdef __cplusplus 19 | } 20 | #endif 21 | // 22 | #endif -------------------------------------------------------------------------------- /hlp/hid_ht_nowhere.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (No Help Available) 6 | 7 | 8 | 9 | 10 | 11 |

No Help Available

12 | 13 |

No help is available for this area of the window.

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/afx_hidd_replace.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Replace Dialog) 6 | 7 | 8 | 9 | 10 | 11 |

Replace dialog box

12 | 13 |

<< Write application-specific help here. >>

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/afx_hidd_color.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Choose Color Dialog) 6 | 7 | 8 | 9 | 10 | 11 |

Choose Color dialog box

12 | 13 |

<< Write application-specific help here. >>

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/afx_hidd_font.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Choose Font Dialog) 6 | 7 | 8 | 9 | 10 | 11 |

Choose Font dialog box

12 | 13 |

<< Write application-specific help here. >>

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/hid_edit_find.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Edit Find Command) 6 | 7 | 8 | 9 | 10 | 11 |

Find command (Edit menu)

12 | 13 |

<< Write application-specific help here. >>

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/hid_edit_clear.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Edit Clear Command) 6 | 7 | 8 | 9 | 10 | 11 |

Clear command (Edit menu)

12 | 13 |

<< Write application-specific help here. >>

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/hid_edit_redo.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Redo command (Edit menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Redo command (Edit menu)

12 | 13 |

<< Write application-specific help here. >>

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/hid_view_ruler.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (View Ruler Command) 6 | 7 | 8 | 9 | 10 | 11 |

Ruler command (View menu)

12 | 13 |

<< Write application-specific help here. >>

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/hid_edit_clear_all.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Edit Clear All) 6 | 7 | 8 | 9 | 10 | 11 |

Clear All command (Edit menu)

12 | 13 |

<< Write application-specific help here. >>

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/hid_edit_replace.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Edit Replace Command) 6 | 7 | 8 | 9 | 10 | 11 |

Replace command (Edit menu)

12 | 13 |

<< Write application-specific help here. >>

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/hid_help_using.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Using Help command (Help menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Using Help command (Help menu)

12 | 13 |

Use this command for instructions about using help.

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/hid_window_tile.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Tile command (Window menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Tile command (Window menu)

12 | 13 |

Use this command to arrange multiple opened windows in a nonoverlapped fashion.

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/hid_sc_minimize.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (System Minimize Command) 6 | 7 | 8 | 9 | 10 | 11 |

Minimize command (application Control menu)

12 | 13 |

Use this command to reduce the <<YourApp>> window to an icon.

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/hid_sc_maximize.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Maximize command (System menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Maximize command (System menu)

12 | 13 |

Use this command to enlarge the active window to fill the available space.

14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /hlp/hid_window_cascade.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Cascade command (Window menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Cascade command (Window menu)

12 | 13 |

Use this command to arrange multiple opened windows in an overlapped fashion.

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/hid_window_tile_vert.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Tile Vertical command (Window menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Tile Vertical command (Window menu)

12 | 13 |

Use this command to arrange multiple opened windows side by side.

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/hid_app_about.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (About command (Help menu)) 6 | 7 | 8 | 9 | 10 | 11 |

About command (Help menu)

12 | 13 |

Use this command to display the copyright notice and version number of your copy of <<YourApp>>.

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/hid_window_tile_horz.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Tile Horizontal command (Window menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Tile Horizontal command (Window menu)

12 | 13 |

Use this command to vertically arrange multiple opened windows in a 14 | nonoverlapped fashion.

15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /hlp/hid_edit_paste.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Paste command (Edit menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Paste command (Edit menu)

12 | 13 |

Use this command to insert a copy of the clipboard contents at the insertion point. This command is unavailable if the clipboard is empty.

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/hid_sc_restore.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Restore command (Control menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Restore command (Control menu)

12 | 13 |

Use this command to return the active window to its size and position before you chose the 14 | Maximize or Minimize command.

15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /hlp/hid_edit_repeat.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Edit Repeat Command) 6 | 7 | 8 | 9 | 10 | 11 |

Repeat command (Edit menu)

12 | 13 |

Use this command to repeat the last editing command carried out. The Repeat menu item changes to 14 | Can't Repeat if you cannot repeat your last action.

15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /hlp/hid_sc_move.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Move command (Control menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Move command (Control menu)

12 | 13 |

Use this command to display a four-headed arrow so you can move the active window or dialog box with the arrow keys.

14 | 15 |

Note: This command is unavailable if you maximize the window.

16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /hlp/hid_sc_nextwindow.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Next Window command (document Control menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Next Window command (document Control menu)

12 | 13 |

Use this command to switch to the next open document window. <<YourApp>> determines which window is next according to the order in which you opened the windows.

14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /hlp/afx_hidw_dockbar_top.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Docking Toolbar Area) 6 | 7 | 8 | 9 | 10 | 11 |

Docking Toolbar Area

12 | 13 |

This area is provided to contain dockable toolbars, such as the default toolbar created for the application. Docking toolbars can be dragged onto or off this client area, and arrange themselves according to the space available.

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /hlp/hid_edit_copy.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Copy command (Edit menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Copy command (Edit menu)

12 | 13 |

Use this command to copy selected data onto the clipboard. This command is unavailable if there is no data currently selected.

14 | 15 |

Copying data to the clipboard replaces the contents previously stored there.

16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /hlp/hid_sc_prevwindow.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Previous Window command (document Control menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Previous Window command (document Control menu)

12 | 13 |

Use this command to switch to the previous open document window. <<YourApp>> determines which window is previous according to the order in which you opened the windows.

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /old/DevMgr.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "DevMgr"=.\DevMgr.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /hlp/afx_hidd_newtypedlg.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (File New dialog box) 6 | 7 | 8 | 9 | 10 | 11 |

File New dialog box

12 | 13 |

<< Delete this help topic if your application supports only one document type. >>

14 | 15 |

Specify the type of document you want to create:

16 | 17 |

<< List your application's document types here >>

18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /hlp/hid_edit_cut.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Cut command (Edit menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Cut command (Edit menu)

12 | 13 |

Use this command to remove the currently selected data from the document and put it on the clipboard. This command is unavailable if there is no data currently selected.

14 | 15 |

Cutting data to the clipboard replaces the contents previously stored there.

16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /hlp/hid_window_all.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (1, 2, ... command (Window menu)) 6 | 7 | 8 | 9 | 10 | 11 |

1, 2, ... command (Window menu)

12 | 13 |

<<YourApp>> displays a list of currently open document windows at the bottom of the 14 | Window menu. A checkmark appears in front of the document name of the active window. Choose a document from this list to make its window active.

15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /hlp/hid_window_arrange.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Window Arrange Icons Command) 6 | 7 | 8 | 9 | 10 | 11 |

Window Arrange Icons Command

12 | 13 |

Use this command to arrange the icons for minimized windows at the bottom of the main window. If there is an open document window at the bottom of the main window, then some or all of the icons may not be visible because they will be underneath this d 14 | ocument window.

15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /hlp/hid_sc_close.htm: -------------------------------------------------------------------------------- 1 | (Close command (Control menus))

Close command (Control menus)

Use this command to close the active window or dialog box.

Double-clicking a Control menu box is the same as choosing the Close command.

Note: If you have multiple windows open for a single document, the Close command on the document Control menu closes only one window at a time. You can close all windows at once with the Close command on the File menu.

2 | -------------------------------------------------------------------------------- /hlp/hid_help_index.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Index command (Help menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Index command (Help menu)

12 | 13 |

Use this command to display the opening screen of help. From the opening screen, you can jump to step-by-step instructions for using <<YourApp>> and various types of reference information.

14 | 15 |

Once you open help, you can click the Contents button whenever you want to return to the opening screen.

16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /hlp/scrollbars.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Scroll bars) 6 | 7 | 8 | 9 | 10 | 11 |

Scrollbars

12 | 13 |

Displayed at the right and bottom edges of the document window. The scroll boxes inside the scrollbars indicate your vertical and horizontal location in the document. You can use the mouse to scroll to other parts of the document.

14 | 15 |

<< Describe the actions of the various parts of the scrollbar, according to how they behave in your application. >>

16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /hlp/hid_file_send_mail.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Send command (File menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Send command (File menu)

12 | 13 |

Use this command to send the active document through e-mail. This command presents a mail window with the active document attached to it. You may then fill out the 14 | To field, Subject field, and so on, and add text to the body of the message. When you are finished, you 15 | can click the Send button to send the message.

16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /hlp/hid_context_help.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Help Using Help Command) 6 | 7 | 8 | 9 | 10 | 11 |

Context Help command

12 | 13 | 14 |

Use this command to obtain help on some portion of <<YourApp>>. When you choose the 15 | toolbar's Context Help button, the mouse pointer will change to an arrow and question mark. Then click somewhere in the <<YourApp>> window, such as another 16 | toolbar button. The help topic will be shown for the item you clicked.

17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /hlp/afx_hidp_default.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (No Help Available) 6 | 7 | 8 | 9 | 10 | 11 |

No Help Available

12 | 13 |

No help is available for this message box.

14 | 15 |

<< If you want to author help specific to each message box prompt, then remove the AFX_HIDP_xxx values from the [ALIAS] section of your 16 | .hpj file, and author a topic for each AFX_HIDP_xxx value. For example, AFX_HIDP_INVALID_FILENAME is the help topic for the 17 | Invalid Filename message box. >>

18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /hlp/hid_file_mru_file1.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (File 1, 2, 3, 4 command) 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

1, 2, 3, 4 command (File menu)

16 | 17 |

Use the numbers and filenames listed at the bottom of the File menu to open the last four documents you closed. Choose the number that corresponds with the document you want to open.

18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /hlp/hid_app_exit.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (File Exit command) 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

Exit command (File menu)

16 | 17 |

Use this command to end your <<YourApp>> session. You can also use the 18 | Close command on the application Control menu. <<YourApp>> prompts you to save documents with unsaved changes.

19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /hlp/main_index.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (<<YourApp>> Help Index) 6 | 7 | 8 | 9 | 10 | 11 |

<<YourApp>> Help Index

12 | 13 |

How To ...

14 | 15 |

<< Add your application-specific how-to topics here. >>

16 | 17 |

Commands

18 | 19 |

File menu

20 | 21 |

Edit menu

22 | 23 |

View menu

24 | 25 |

Help menu

26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /old/DevMgr.h: -------------------------------------------------------------------------------- 1 | #ifndef __ICE_DEVMGR_H 2 | #define __ICE_DEVMGR_H 3 | // 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | // 8 | #pragma once 9 | // 10 | #include 11 | #include 12 | #include 13 | #include "util.h" 14 | #include "setup.h" 15 | #include "wdmsetup.h" 16 | #include "syssetup.h" 17 | #include "resource.h" 18 | // 19 | INT_PTR CALLBACK MainDialog(HWND, UINT, WPARAM, LPARAM); 20 | INT_PTR CALLBACK InstallDialog(HWND, UINT, WPARAM, LPARAM); 21 | // 22 | void DisableRadioBtn(HWND, const char); 23 | void GetInstallOption(HWND, short*, short*); 24 | char OpenINFFile(const char, char*); 25 | void SetCharSet(const UINT, const UINT); 26 | void DeleteINFFile(const char*); 27 | BOOL EnablePrivilege(LPCTSTR); 28 | // 29 | #ifdef __cplusplus 30 | } 31 | #endif 32 | // 33 | #endif -------------------------------------------------------------------------------- /hlp/hid_window_new.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (New command (Window menu)) 6 | 7 | 8 | 9 | 10 | 11 |

New command (Window menu)

12 | 13 |

Use this command to open a new window with the same contents as the active window. You can open multiple document windows to display different parts or views of a document at the same time. If you change the contents in one window, all other windows 14 | containing the same document reflect those changes. When you open a new window, it becomes the active window and is displayed on top of all other open windows.

15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /hlp/hid_edit_undo.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Undo/Can't Undo command (Edit menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Undo/Can't Undo command (Edit menu)

12 | 13 |

<< Your application's user interface for Undo may differ from the one described below. Modify this help text accordingly. >>

14 | 15 |

Use this command to reverse the last editing action, if possible. The name of the command changes, depending on what the last action was. The 16 | Undo command changes to Can't Undo on the menu if you cannot reverse your last action.

17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /hlp/menu_view.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (View menu commands) 6 | 7 | 8 | 9 | 10 | 11 |

View menu commands

12 | 13 |

The View menu offers the following commands:

14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
ToolbarShows or hides the toolbar.
Status BarShows or hides the status bar.
27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: mihaimoga 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 13 | custom: "https://www.paypal.com/donate/?business=X57JM9BLZFXXA&amount=10&no_recurring=0&item_name=IntelliTask¤cy_code=EUR" 14 | -------------------------------------------------------------------------------- /hlp/hid_window_split.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Split Command (Window menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Split Command (Window menu)

12 | 13 |

Use this command to split the active window into panes. You may then use the mouse or the keyboard arrows to move the splitter bars. When you are finished, press the mouse button or enter to leave the splitter bars in their new location. Pressing es 14 | cape keeps the splitter bars in their original location. << In a single document interface application, this command will appear on the 15 | View menu. >>

16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /hlp/afx_hidw_toolbar.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (toolbar) 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

Toolbar

16 | 17 | 18 |

The toolbar is displayed across the top of the application window, below the menu bar. The toolbar provides quick mouse access to many tools used in <<YourApp>>,

19 | 20 |

To hide or display the toolbar, click Toolbar from the View menu.

21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /hlp/hid_file_save_as.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (File Save As command) 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

Save As command (File menu)

16 | 17 |

Use this command to save and name the active document. <<YourApp>> displays the Save As dialog box so you can name your document.

18 | 19 |

To save a document with its existing name and directory, use the Save command.

20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /hlp/hid_view_toolbar.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (View Toolbar command) 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

Toolbar command (View menu)

16 | 17 |

Use this command to display and hide the toolbar, which includes buttons for some of the most common commands in <<YourApp>>, such as 18 | File Open. A checkmark appears next to the menu item when the toolbar is displayed.

19 | 20 |

See Toolbar for help on using the toolbar.

21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /hlp/menu_help.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Help menu commands) 6 | 7 | 8 | 9 | 10 | 11 |

Help menu commands

12 | 13 |

The Help menu offers the following commands, which provide you assistance with this application:

14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
Help TopicsOffers you an index to topics on which you can get help.
AboutDisplays the version number of this application.

27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /hlp/hid_file_open.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (File Open command) 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

Open command (File menu)

16 | 17 |

Use this command to open an existing document in a new window. You can open multiple documents at once. Use the 18 | Window menu to switch among the multiple open documents. See Window 1, 2, ... command.

19 | 20 |

You can create new documents with the New command.

21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /hlp/hid_sc_size.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Size command (System menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Size command (System menu)

12 | 13 |

Use this command to display a four-headed arrow so you can size the active window with the arrow keys.

14 | 15 |

After the pointer changes to the four-headed arrow:

16 | 17 |

1.Press one of the direction keys (left, right, up, or down arrow key) to move the pointer to the border you want to move.

18 | 19 |

2.Press a direction key to move the border.

20 | 21 |

3.Press ENTER when the window is the size you want.

22 | 23 |

Note: This command is unavailable if you maximize the window.

24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /hlp/hid_view_status_bar.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (View Status Bar Command) 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

Status Bar command (View menu)

16 | 17 |

Use this command to display and hide the status bar, which describes the action to be executed by the selected menu item or 18 | pressed toolbar button, and keyboard latch state. A checkmark appears next to the menu item when the 19 | status bar is displayed.

20 | 21 |

See Status Bar for help on using the status bar.

22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /hlp/hid_file_new.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (File New command) 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

New command (File menu)

16 | 17 |

Use this command to create a new document in <<YourApp>>. Select the type of new file you want to create in the File New dialog box. << Remove previous sentence if your application supports only 18 | one document type. >>

19 | 20 |

You can open an existing document with the Open command.

21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /hlp/hid_file_save.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (File Save command) 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

Save command (File menu)

16 | 17 |

Use this command to save the active document to its current name and directory. When you save a document for the first time, <<YourApp>> displays the Save As dialog box so you can name your document. If 18 | you want to change the name and directory of an existing document before you save it, choose the Save As command.

19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Messages.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | #pragma once 17 | 18 | static constexpr UINT MSG_NAVIGATE = WM_APP + 123; 19 | static constexpr UINT MSG_RUN_ASYNC_CALLBACK = WM_APP + 124; -------------------------------------------------------------------------------- /hlp/hid_file_close.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (File Close command) 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

Close command (File menu)

16 | 17 |

Use this command to close all windows containing the active document. <<YourApp>> suggests that you save changes to your document before you close it. If you close a document without saving, you lose all changes made since the last time y 18 | ou saved it. Before closing an untitled document, <<YourApp>> displays the Save As dialog box and suggests that you name and save the document.

19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /old/GetTypeInfo.h: -------------------------------------------------------------------------------- 1 | #ifndef ICE__GETTYPEINFO_H 2 | #define ICE__GETTYPEINFO_H 3 | // 4 | #pragma once 5 | // 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | // 10 | #include "devmgr.h" 11 | #include 12 | #include 13 | #include 14 | #include "util.h" 15 | // 16 | #pragma comment(lib, "setupapi.lib") 17 | #pragma comment(lib, "newdev.lib") 18 | // 19 | #define FILE_REMOVABLE_MEDIA 0x00000001 20 | #define FILE_READ_ONLY_DEVICE 0x00000002 21 | #define FILE_FLOPPY_DISKETTE 0x00000004 22 | #define FILE_WRITE_ONCE_MEDIA 0x00000008 23 | #define FILE_REMOTE_DEVICE 0x00000010 24 | #define FILE_DEVICE_IS_MOUNTED 0x00000020 25 | #define FILE_VIRTUAL_VOLUME 0x00000040 26 | #define FILE_AUTOGENERATED_DEVICE_NAME 0x00000080 27 | #define FILE_DEVICE_SECURE_OPEN 0x00000100 28 | // 29 | void GetMoreInformation(HDEVINFO, SP_DEVINFO_DATA, const UINT); 30 | void GetDriverName(HWND, const char*); 31 | // 32 | #ifdef __cplusplus 33 | } 34 | #endif 35 | // 36 | #endif -------------------------------------------------------------------------------- /old/WDMSetup.h: -------------------------------------------------------------------------------- 1 | #ifndef __ICE_SETUPLIB_H 2 | #define __ICE_SETUPLIB_H 3 | // 4 | #pragma once 5 | // 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | // 10 | #include 11 | //#include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include "util.h" 17 | // 18 | #pragma comment(lib, "setupapi.lib") 19 | #pragma comment(lib, "newdev.lib") 20 | //#pragma comment(lib, "comctl32.lib") 21 | // 22 | #ifndef MAX_DEVICE_ID_LEN 23 | #define MAX_DEVICE_ID_LEN 200 24 | #define MAX_DEVNODE_ID_LEN MAX_DEVICE_ID_LEN 25 | #define MAX_GUID_STRING_LEN 39 // 38 chars + terminator null 26 | #define MAX_CLASS_NAME_LEN 32 27 | #endif 28 | // 29 | void InitialGlobalVar(); 30 | // 31 | char FindSectionName(FILE*, const char*); 32 | char IsInstalled(); 33 | char GetSectionData(FILE*, const char*, const char); 34 | char GetINFData(FILE*); 35 | char StartInstallWDMDriver(const char*); 36 | char InstallClassDriver(const char*); 37 | void UninstallWDMDriver(const int, const char*); 38 | //int FindInstalledIndex(GUID, int*); 39 | // 40 | #ifdef __cplusplus 41 | } 42 | #endif 43 | // 44 | #endif 45 | -------------------------------------------------------------------------------- /hlp/menu_edit.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Edit menu commands) 6 | 7 | 8 | 9 | 10 | 11 |

Edit menu commands

12 | 13 |

The Edit menu offers the following commands:

14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 |
UndoReverse previous editing operation.
CutDeletes data from the document and moves it to the clipboard.
CopyCopies data from the document to the clipboard.
PastePastes data from the clipboard into the document.
37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /hlp/afx_hidd_fileopen.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (File Open dialog box) 6 | 7 | 8 | 9 | 10 | 11 |

File Open dialog box

12 | 13 |

The following options allow you to specify which file to open:

14 | 15 |

File Name

16 | 17 |

Specifies the file you want to open. This box lists files with the extension you select in the 18 | List Files of Type field.

19 | 20 |

List Files of Type

21 | 22 |

Specifies the type of file you want to open:

23 | 24 |

<< List your application's file types here. >>

25 | 26 |

Drives

27 | 28 |

Specifies the drive in which <<YourApp>> stores the file that you want to open.

29 | 30 |

Directories

31 | 32 |

Specifies the directory in which <<YourApp>> stores the file that you want to open.

33 | 34 |

Network

35 | 36 |

Click this button to connect to a network location, assigning it a new drive letter.

37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /SortListCtrl.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | #pragma once 17 | 18 | #include "ProcessList.h" 19 | 20 | // CSortListCtrl 21 | 22 | class CSortListCtrl : public CMFCListCtrl 23 | { 24 | DECLARE_DYNAMIC(CSortListCtrl) 25 | 26 | public: 27 | CSortListCtrl(); 28 | virtual ~CSortListCtrl(); 29 | 30 | protected: 31 | virtual int OnCompareItems(LPARAM lParam1, LPARAM lParam2, int iColumn); 32 | 33 | public: 34 | CSystemSnapshot* m_pSystemSnapshot; 35 | 36 | protected: 37 | DECLARE_MESSAGE_MAP() 38 | }; 39 | -------------------------------------------------------------------------------- /hlp/afx_hidd_filesave.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (File Save As dialog box) 6 | 7 | 8 | 9 | 10 | 11 |

File Save As dialog box

12 | 13 |

The following options allow you to specify the name and location of the file you're about to save:

14 | 15 |

File Name

16 | 17 |

Specifies a file name to save a document with a different name. <<YourApp>> adds the extension you specify in the 18 | Save File As Type box.

19 | 20 |

Drives

21 | 22 |

Specifies the drive in which you want to store the document.

23 | 24 |

Directories

25 | 26 |

Specifies the directory in which you want to store the document.

27 | 28 |

Network

29 | 30 |

Click this button to connect to a network location, assigning it a new drive letter.

31 | 32 |

<< Add other File Save As dialog box options depending on which ones your application chooses 33 | through the OFN_ flags of the OPENFILENAME structure used by the CFileDialog. >>

34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /hlp/hid_ht_caption.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Title Bar) 6 | 7 | 8 | 9 | 10 | 11 |

Title Bar

12 | 13 |

<< Show your application's title bar here. >>

14 | 15 |

The title bar is located along the top of a window. It contains the name of the application and document.

16 | 17 |

To move the window, drag the title bar. Note: You can also move dialog boxes by dragging their title bars.

18 | 19 |

A title bar may contain the following elements:

20 | 21 |

Application Control menu button

22 | 23 |

Document Control menu button

24 | 25 |

Maximize button

26 | 27 |

Minimize button

28 | 29 |

Name of the application

30 | 31 |

Name of the document

32 | 33 |

Restore button

34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /hlp/hidr_doc1type.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Modifying the Document) 6 | 7 | 8 | 9 | 10 | 11 |

Modifying the Document

12 | 13 |

<< Write application-specific help here that provides an overview of how the user should modify a document using your application.

14 | 15 |

If your application supports multiple document types and you want to have a distinct help topic for each, then use the help context 16 | ID generated by running the MAKEHELP.BAT file produced by the application 17 | wizard. Alternately, run MAKEHM as follows:

18 | 19 |

makehm IDR_HIDR_,0x2000 resource.h

20 | 21 |

If the IDR_ symbol for one of your document types is, for example, IDR_CHARTTYPE, then the help context 22 | ID generated by MAKEHM will be HIDR_CHARTTYPE.

23 | 24 |

Note: The application wizard defines the HIDR_DOC1TYPE help context ID used by this help topic for the first document type supported by your application. 25 | The application wizard produces an alias in the .hpj file for your application, mapping HIDR_DOC1TYPE to the HIDR_ produced by MAKEHM for that document type. >>

26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /ChildView.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | // ChildView.h : interface of the CChildView class 17 | // 18 | 19 | #pragma once 20 | 21 | // CChildView window 22 | 23 | class CChildView : public CWnd 24 | { 25 | // Construction 26 | public: 27 | CChildView(); 28 | 29 | // Attributes 30 | public: 31 | 32 | // Operations 33 | public: 34 | 35 | // Overrides 36 | protected: 37 | virtual BOOL PreCreateWindow(CREATESTRUCT& cs); 38 | 39 | // Implementation 40 | public: 41 | virtual ~CChildView(); 42 | 43 | // Generated message map functions 44 | protected: 45 | afx_msg void OnPaint(); 46 | DECLARE_MESSAGE_MAP() 47 | }; 48 | -------------------------------------------------------------------------------- /hlp/menu_window.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Window menu commands) 6 | 7 | 8 | 9 | 10 | 11 |

Window menu commands

12 | 13 |

The Window menu offers the following commands, which enable you to arrange multiple views of multiple documents in the application window:

14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
New WindowCreates a new window that views the same document.
CascadeArranges windows in an overlapped fashion.
TileArranges windows in non-overlapped tiles.
Arrange IconsArranges icons of closed windows.
Window 1, 2, ...Goes to specified window.

41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /hlp/IntelliTask.hhc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
    8 |
  • 9 | 10 | 11 | 12 |
  • 13 | 14 | 15 |
      16 |
    • 17 | 18 | 19 | 20 |
    • 21 | 22 | 23 | 24 |
    • 25 | 26 | 27 | 28 |
    • 29 | 30 | 31 | 32 |
    33 |
  • 34 | 35 | 36 | 37 |
  • 38 | 39 | 40 | 41 |
42 | 43 | -------------------------------------------------------------------------------- /Setup/README.md: -------------------------------------------------------------------------------- 1 | 2 | # IntelliTask Setup 3 | 4 | This folder contains installation packages for **IntelliTask**, a lightweight and efficient task management tool for Windows. IntelliTask helps users organize, track, and prioritize tasks with a simple and intuitive interface. 5 | 6 | ## 📦 Installation Options 7 | 8 | You can install IntelliTask using one of the following methods: 9 | 10 | ### Option 1: MSI Installer 11 | 12 | - **Download**: [IntelliTaskSetup.msi](https://www.moga.doctor/freeware/IntelliTaskSetup.msi) 13 | - **Instructions**: 14 | 1. Download the `.msi` installer. 15 | 2. Right-click the file and select **Run as administrator**. 16 | 3. Follow the installation wizard to complete the setup. 17 | 18 | ### Option 2: Portable ZIP Archive 19 | 20 | - **Download**: [IntelliTask.zip](https://www.moga.doctor/freeware/IntelliTask.zip) 21 | - **Instructions**: 22 | 1. Download and extract the ZIP file. 23 | 2. Navigate to the extracted folder. 24 | 3. Run `IntelliTask.exe` to launch the application. 25 | 26 | ## 🖥️ Requirements 27 | 28 | - Windows operating system 29 | - Administrative privileges (for MSI installation) 30 | 31 | ## 📁 Contents 32 | 33 | - `IntelliTaskSetup.msi` – Windows installer package 34 | - `IntelliTask.zip` – Portable version of IntelliTask 35 | 36 | ## 📄 License 37 | 38 | This project is licensed under the [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.html). 39 | 40 | --- 41 | 42 | > Choose the installation method that best suits your needs and start managing your tasks with IntelliTask. 43 | -------------------------------------------------------------------------------- /WebBrowserDlg.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | #pragma once 17 | #include "EdgeWebBrowser.h" 18 | 19 | // CWebBrowserDlg dialog 20 | 21 | class CWebBrowserDlg : public CDialogEx 22 | { 23 | DECLARE_DYNAMIC(CWebBrowserDlg) 24 | 25 | public: 26 | CWebBrowserDlg(CWnd* pParent = nullptr); // standard constructor 27 | virtual ~CWebBrowserDlg(); 28 | 29 | // Dialog Data 30 | #ifdef AFX_DESIGN_TIME 31 | enum { IDD = IDD_WebBrowserDlg }; 32 | #endif 33 | 34 | protected: 35 | CWebBrowser m_pCustomControl; 36 | 37 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 38 | 39 | protected: 40 | // Generated message map functions 41 | virtual BOOL OnInitDialog(); 42 | afx_msg void OnDestroy(); 43 | afx_msg void OnSize(UINT nType, int cx, int cy); 44 | 45 | DECLARE_MESSAGE_MAP() 46 | }; 47 | -------------------------------------------------------------------------------- /hlp/hid_sc_tasklist.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (Switch to command (application Control menu)) 6 | 7 | 8 | 9 | 10 | 11 |

Switch to command (application Control menu)

12 | 13 |

Use this command to display a list of all open applications. Use this task 14 | List to switch to or close an application on the list.

15 | 16 | 17 |

Dialog Box Options

18 | 19 |

When you choose the Switch To command, you will be presented with a dialog box with the following options:

20 | 21 |

Task List

22 | 23 |

Specifies the application you want to switch to or close.

24 | 25 |

Switch To

26 | 27 |

Makes the selected application active.

28 | 29 |

End Task

30 | 31 |

Closes the selected application.

32 | 33 |

Cancel

34 | 35 |

Closes the Task List box.

36 | 37 |

Cascade

38 | 39 |

Arranges open applications so they overlap and you can see each title bar. This option does not affect applications reduced to icons.

40 | 41 |

Tile

42 | 43 |

Arranges open applications into windows that do not overlap. This option does not affect applications reduced to icons.

44 | 45 |

Arrange Icons

46 | 47 |

Arranges the icons of all minimized applications across the bottom of the screen.

48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /hlp/menu_file.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (File menu commands) 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

File menu commands

16 | 17 |

The File menu offers the following commands:

18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
NewCreates a new document.
OpenOpens an existing document.
CloseCloses an opened document.
SaveSaves an opened document using the same file name.
Save AsSaves an opened document to a specified file name.
ExitExits <<YourApp>>.

51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /hlp/afx_hidw_status_bar.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | (status bar) 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

Status Bar

16 | 17 |

The status bar is displayed at the bottom of the <<YourApp>> window. To display or hide the status bar, use the 18 | Status Bar command in the View menu.

19 | 20 |

The left area of the status bar describes actions of menu items as you use the arrow keys to navigate through menus. This area similarly shows messages that describe the actions of toolbar buttons as you 21 | press them, before releasing them. If after viewing the description of the toolbar button command you wish not to execute the command, then release the mouse button while the pointer is off the toolbar button.

22 | 23 |

The right areas of the status bar indicate which of the following keys are latched down:

24 | 25 |

Indicator    Description

26 | 27 |

CAP           The Caps Lock key is latched down.

28 | 29 |

NUM         The Num Lock key is latched down.

30 | 31 |

SCRL         The Scroll Lock key is latched down.

32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /stdafx.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | // This MFC Samples source code demonstrates using MFC Microsoft Office Fluent User Interface 17 | // (the "Fluent UI") and is provided only as referential material to supplement the 18 | // Microsoft Foundation Classes Reference and related electronic documentation 19 | // included with the MFC C++ library software. 20 | // License terms to copy, use or distribute the Fluent UI are available separately. 21 | // To learn more about our Fluent UI licensing program, please visit 22 | // http://msdn.microsoft.com/officeui. 23 | // 24 | // Copyright (C) Microsoft Corporation 25 | // All rights reserved. 26 | 27 | // stdafx.cpp : source file that includes just the standard includes 28 | // IntelliTask.pch will be the pre-compiled header 29 | // stdafx.obj will contain the pre-compiled type information 30 | 31 | #include "stdafx.h" 32 | 33 | 34 | -------------------------------------------------------------------------------- /CpuUsage.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | #pragma once 17 | 18 | #include 19 | 20 | class CpuUsage 21 | { 22 | public: 23 | CpuUsage(void); 24 | DOUBLE GetUsage(); 25 | DWORD GetProcessID() { return m_dwProcessID; } 26 | void SetProcessID(DWORD dwProcessID) { m_dwProcessID = dwProcessID; } 27 | 28 | private: 29 | ULONGLONG SubtractTimes(const FILETIME& ftA, const FILETIME& ftB); 30 | bool EnoughTimePassed(); 31 | inline bool IsFirstRun() const { return (m_dwLastRun == 0); } 32 | 33 | protected: 34 | DWORD m_dwProcessID; 35 | //system total times 36 | FILETIME m_ftPrevSysIdle; 37 | FILETIME m_ftPrevSysKernel; 38 | FILETIME m_ftPrevSysUser; 39 | //process times 40 | FILETIME m_ftPrevProcKernel; 41 | FILETIME m_ftPrevProcUser; 42 | // last results 43 | DOUBLE m_nCpuUsage; 44 | ULONGLONG m_dwLastRun; 45 | int m_nProcessors; 46 | 47 | volatile LONG m_lRunCount; 48 | }; 49 | -------------------------------------------------------------------------------- /targetver.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | // This MFC Samples source code demonstrates using MFC Microsoft Office Fluent User Interface 17 | // (the "Fluent UI") and is provided only as referential material to supplement the 18 | // Microsoft Foundation Classes Reference and related electronic documentation 19 | // included with the MFC C++ library software. 20 | // License terms to copy, use or distribute the Fluent UI are available separately. 21 | // To learn more about our Fluent UI licensing program, please visit 22 | // http://msdn.microsoft.com/officeui. 23 | // 24 | // Copyright (C) Microsoft Corporation 25 | // All rights reserved. 26 | 27 | #pragma once 28 | 29 | // Including SDKDDKVer.h defines the highest available Windows platform. 30 | 31 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 32 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 33 | 34 | #include 35 | -------------------------------------------------------------------------------- /IntelliTask.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | // IntelliTask.h : main header file for the IntelliTask application 17 | // 18 | #pragma once 19 | 20 | #ifndef __AFXWIN_H__ 21 | #error "include 'stdafx.h' before including this file for PCH" 22 | #endif 23 | 24 | #include "resource.h" // main symbols 25 | #include "sinstance.h" 26 | 27 | // CIntelliTaskApp: 28 | // See IntelliTask.cpp for the implementation of this class 29 | // 30 | 31 | class CIntelliTaskApp : public CWinAppEx 32 | { 33 | public: 34 | CIntelliTaskApp(); 35 | 36 | public: 37 | CInstanceChecker m_pInstanceChecker; 38 | 39 | // Overrides 40 | public: 41 | virtual BOOL InitInstance(); 42 | virtual int ExitInstance(); 43 | 44 | // Implementation 45 | bool EnableFullAccess(); 46 | 47 | public: 48 | virtual void PreLoadState(); 49 | virtual void LoadCustomState(); 50 | virtual void SaveCustomState(); 51 | 52 | afx_msg void OnAppAbout(); 53 | DECLARE_MESSAGE_MAP() 54 | }; 55 | 56 | extern CIntelliTaskApp theApp; 57 | -------------------------------------------------------------------------------- /CheckForUpdatesDlg.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | #pragma once 17 | 18 | #include "VersionInfo.h" 19 | 20 | // CCheckForUpdatesDlg dialog 21 | 22 | class CCheckForUpdatesDlg : public CDialogEx 23 | { 24 | DECLARE_DYNAMIC(CCheckForUpdatesDlg) 25 | 26 | public: 27 | CCheckForUpdatesDlg(CWnd* pParent = nullptr); // standard constructor 28 | virtual ~CCheckForUpdatesDlg(); 29 | 30 | // Dialog Data 31 | #ifdef AFX_DESIGN_TIME 32 | enum { IDD = IDD_CheckForUpdatesDlg }; 33 | #endif 34 | 35 | public: 36 | CStatic m_ctrlStatusMessage; 37 | CProgressCtrl m_ctrlProgress; 38 | CVersionInfo m_pVersionInfo; 39 | protected: 40 | DWORD m_nUpdateThreadID; 41 | HANDLE m_hUpdateThread; 42 | UINT_PTR m_nTimerID; 43 | 44 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 45 | 46 | protected: 47 | // Generated message map functions 48 | virtual BOOL OnInitDialog(); 49 | virtual void OnCancel(); 50 | afx_msg void OnTimer(UINT_PTR nIDEvent); 51 | 52 | DECLARE_MESSAGE_MAP() 53 | }; 54 | -------------------------------------------------------------------------------- /EnumProgramsDlg.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | #pragma once 17 | 18 | #include "WndResizer.h" 19 | 20 | // CEnumProgramsDlg dialog 21 | 22 | class CSortStringArray : public CStringArray 23 | { 24 | public: 25 | void Sort(); 26 | private: 27 | BOOL CompareAndSwap(int pos); 28 | }; 29 | 30 | class CEnumProgramsDlg : public CDialogEx 31 | { 32 | DECLARE_DYNAMIC(CEnumProgramsDlg) 33 | 34 | public: 35 | CEnumProgramsDlg(CWnd* pParent = nullptr); // standard constructor 36 | virtual ~CEnumProgramsDlg(); 37 | 38 | // Dialog Data 39 | #ifdef AFX_DESIGN_TIME 40 | enum { IDD = IDD_ENUMPROGRAMS_DIALOG }; 41 | #endif 42 | CWndResizer m_pWindowResizer; 43 | CSortStringArray m_arrPrograms; 44 | CListCtrl m_ctrlPrograms; 45 | 46 | protected: 47 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 48 | 49 | protected: 50 | virtual BOOL OnInitDialog(); 51 | afx_msg void OnDestroy(); 52 | afx_msg void OnBnClickedVersion(); 53 | afx_msg void OnClickedRefresh(); 54 | 55 | DECLARE_MESSAGE_MAP() 56 | public: 57 | }; 58 | -------------------------------------------------------------------------------- /ChildView.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | // ChildView.cpp : implementation of the CChildView class 17 | // 18 | 19 | #include "stdafx.h" 20 | #include "IntelliTask.h" 21 | #include "ChildView.h" 22 | 23 | #ifdef _DEBUG 24 | #define new DEBUG_NEW 25 | #endif 26 | 27 | // CChildView 28 | 29 | CChildView::CChildView() 30 | { 31 | } 32 | 33 | CChildView::~CChildView() 34 | { 35 | } 36 | 37 | BEGIN_MESSAGE_MAP(CChildView, CWnd) 38 | ON_WM_PAINT() 39 | END_MESSAGE_MAP() 40 | 41 | // CChildView message handlers 42 | 43 | BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs) 44 | { 45 | if (!CWnd::PreCreateWindow(cs)) 46 | return FALSE; 47 | 48 | cs.dwExStyle |= WS_EX_CLIENTEDGE; 49 | cs.style &= ~WS_BORDER; 50 | cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS, 51 | ::LoadCursor(nullptr, IDC_ARROW), reinterpret_cast(COLOR_WINDOW+1), nullptr); 52 | 53 | return TRUE; 54 | } 55 | 56 | void CChildView::OnPaint() 57 | { 58 | CPaintDC dc(this); // device context for painting 59 | 60 | // TODO: Add your message handler code here 61 | 62 | // Do not call CWnd::OnPaint() for painting messages 63 | } 64 | -------------------------------------------------------------------------------- /MFCListView.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | #pragma once 17 | 18 | #include "SortListCtrl.h" 19 | 20 | // CMFCListView form view 21 | 22 | class CMFCListView : public CFormView 23 | { 24 | DECLARE_DYNCREATE(CMFCListView) 25 | 26 | protected: 27 | CMFCListView(); // protected constructor used by dynamic creation 28 | virtual ~CMFCListView(); 29 | 30 | public: 31 | enum { IDD = IDD_MFCLISTVIEW }; 32 | #ifdef _DEBUG 33 | virtual void AssertValid() const; 34 | #ifndef _WIN32_WCE 35 | virtual void Dump(CDumpContext& dc) const; 36 | #endif 37 | #endif 38 | 39 | protected: 40 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 41 | public: 42 | afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 43 | afx_msg void OnDestroy(); 44 | afx_msg void OnSize(UINT nType, int cx, int cy); 45 | afx_msg BOOL OnEraseBkgnd(CDC* pDC); 46 | virtual void OnInitialUpdate(); 47 | virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo); 48 | CSortListCtrl& GetListCtrl() { return m_mfcListCtrl; } 49 | 50 | protected: 51 | CSortListCtrl m_mfcListCtrl; 52 | 53 | DECLARE_MESSAGE_MAP() 54 | }; 55 | -------------------------------------------------------------------------------- /ProcessView.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | #pragma once 17 | 18 | #include "MFCListView.h" 19 | #include "ProcessList.h" 20 | 21 | class CMainFrame; 22 | 23 | // CProcessView view 24 | 25 | class CProcessView : public CMFCListView 26 | { 27 | DECLARE_DYNCREATE(CProcessView) 28 | 29 | public: 30 | CProcessView(); // protected constructor used by dynamic creation 31 | virtual ~CProcessView(); 32 | 33 | public: 34 | #ifdef _DEBUG 35 | virtual void AssertValid() const; 36 | #ifndef _WIN32_WCE 37 | virtual void Dump(CDumpContext& dc) const; 38 | #endif 39 | #endif 40 | 41 | public: 42 | virtual void OnInitialUpdate(); 43 | afx_msg void OnDestroy(); 44 | afx_msg void OnSize(UINT nType, int cx, int cy); 45 | afx_msg void OnTimer(UINT_PTR nIDEvent); 46 | afx_msg void OnDblClickEntry(NMHDR *pNMHDR, LRESULT *pResult); 47 | 48 | public: 49 | void ResizeListCtrl(); 50 | void DoubleClickEntry(int nIndex); 51 | CString FormatSize(ULONGLONG nFormatSize); 52 | bool Refresh(); 53 | 54 | public: 55 | bool m_bInitialized; 56 | CMainFrame* m_pMainFrame; 57 | CSystemSnapshot m_pSystemSnapshot; 58 | UINT m_nRefreshTimerID; 59 | 60 | protected: 61 | DECLARE_MESSAGE_MAP() 62 | }; 63 | -------------------------------------------------------------------------------- /old/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Developer Studio generated include file. 3 | // Used by DevMgr.rc 4 | // 5 | #define IDD_DIALOG1 101 6 | #define IDI_MYCOMP 102 7 | #define IDB_MYCOMP 103 8 | #define IDD_DIALOG2 104 9 | #define IDC_TREE1 1000 10 | #define IDC_ADDBTN 1001 11 | #define IDC_DELBTN 1002 12 | #define IDC_REFBTN 1003 13 | #define IDC_RADIO1 1004 14 | #define IDC_RADIO2 1005 15 | #define IDC_LIST1 1006 16 | #define IDC_EXIT 1007 17 | #define IDC_INSTALLBTN 1008 18 | #define IDC_COPYPATHBTN 1008 19 | #define IDC_IEXIT 1009 20 | #define IDC_DISABLEBTN 1009 21 | #define IDC_RESETBTN 1010 22 | #define IDC_OPENINFBTN 1011 23 | #define IDC_INFLBL 1012 24 | #define IDC_PARAMOPT1 1013 25 | #define IDC_PARAMOPT2 1014 26 | #define IDC_PARAMOPT3 1015 27 | #define IDC_PARAMOPT4 1016 28 | #define IDC_PARAMOPT5 1017 29 | #define IDC_PARAMOPT6 1018 30 | #define IDC_PARAMOPT7 1019 31 | #define IDC_PARAMOPT8 1020 32 | #define IDC_PARAMOPT9 1021 33 | #define IDC_LIST2 1022 34 | #define IDC_ENABLEDRVBTN 1022 35 | #define IDC_MOREINFOBTN 1023 36 | #define IDC_DRVNAMETXT 1025 37 | #define IDC_CHECK1 1026 38 | 39 | // Next default values for new objects 40 | // 41 | #ifdef APSTUDIO_INVOKED 42 | #ifndef APSTUDIO_READONLY_SYMBOLS 43 | #define _APS_NEXT_RESOURCE_VALUE 106 44 | #define _APS_NEXT_COMMAND_VALUE 40001 45 | #define _APS_NEXT_CONTROL_VALUE 1027 46 | #define _APS_NEXT_SYMED_VALUE 101 47 | #endif 48 | #endif 49 | -------------------------------------------------------------------------------- /old/Util.h: -------------------------------------------------------------------------------- 1 | #ifndef __ICE_UTILLIB_H 2 | #define __ICE_UTILLIB_H 3 | // 4 | #pragma once 5 | // 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | // 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | //#include "resource.h" 16 | // 17 | #pragma comment(lib, "comctl32.lib") 18 | // 19 | UINT IsListViewClkEvent(const UINT, NMHDR*); 20 | UINT IsListViewDBClkEvent(const UINT, NMHDR*); 21 | void ListViewDeleteItem(HWND hList, const short wItem); 22 | void ListViewGetItemText(HWND, const int, char*); 23 | void ListViewGetSpecItem(HWND, const int, const int, char*); 24 | void ListViewInsertColumnText(HWND, const short, const int, char*, const BOOL); 25 | void ListViewAddColumnImageText(HWND, const UINT, const short, const int, char*, const BOOL); 26 | void ListViewInsertItemText(HWND, const int, const int, char*); 27 | void ListViewSetExtStyle(HWND, const DWORD); 28 | void ListViewSetSelectItem(HWND, const short); 29 | void ListViewRemoveAllItems(HWND); 30 | void ListViewRemoveItem(HWND, const UINT, const int); 31 | void ListViewRemoveColumn(HWND, const UINT, const int); 32 | int ListViewGetItemSelect(HWND); 33 | int ListViewGetItemCount(HWND); 34 | // 35 | HTREEITEM TreeViewInsertRootText(HWND, UINT, HTREEITEM, HTREEITEM, char*); 36 | HTREEITEM TreeViewFindChild(HWND, HTREEITEM, const char*); 37 | HTREEITEM MakeDeviceRootTree(SP_CLASSIMAGELIST_DATA, const UINT, const UINT); 38 | UINT IsTreeViewClkEvent(const UINT, NMHDR*); 39 | UINT IsTreeViewSelectChanged(const UINT, NMHDR*); 40 | void TreeViewGetSelectText(HWND, NMHDR*, TVITEM*); 41 | void TreeViewExpand(HWND, HTREEITEM, const BOOL); 42 | void TreeViewRemoveAllNodes(HWND, const UINT); 43 | // 44 | void SetOverlayImage(HIMAGELIST, const int, const int); 45 | int GetImageCount(HIMAGELIST); 46 | int ListViewSetImageList(HWND, const int, LPARAM); 47 | // 48 | void ShowErrorMsg(HWND, const DWORD, const char*); 49 | void DisableCloseBox(HWND); 50 | void WaitCursor(const char); 51 | // 52 | BOOL AnsiToUnicode(const char*, const short, wchar_t*, const short); 53 | BOOL UnicodeToAnsi(const wchar_t*, const short, char*, const short); 54 | // 55 | void FindComma(char*); 56 | void StrLTrim(char*); 57 | void StrRTrim(char*); 58 | void StrRight(char*, short); 59 | void ConvertGUIDToString(const GUID, char*); 60 | // 61 | #ifdef __cplusplus 62 | } 63 | #endif 64 | // 65 | #endif 66 | -------------------------------------------------------------------------------- /old/Setup.h: -------------------------------------------------------------------------------- 1 | #ifndef __ICE_SETUP_H 2 | #define __ICE_SETUP_H 3 | // 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | // 8 | #pragma once 9 | // 10 | #include "devmgr.h" 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include "gettypeinfo.h" 16 | #include "util.h" 17 | // 18 | #pragma comment(lib, "setupapi.lib") 19 | #pragma comment(lib, "newdev.lib") 20 | #pragma comment(lib, "shell32.lib") 21 | // 22 | typedef struct _tagDEVICE_ORDER 23 | { 24 | char szDevName[LINE_LEN]; 25 | struct _tagDEVICE_ORDER *pNext; 26 | } DEVICE_ORDER, *PDEVICE_ORDER; 27 | // 28 | typedef struct _tagDEVLIST 29 | { 30 | GUID guid; 31 | short wOrder; 32 | short wIndex; 33 | char szInstallID[LINE_LEN]; 34 | char szName[MAX_PATH]; 35 | char szPath[MAX_PATH]; 36 | struct _tagDEVLIST *pNext; 37 | }DEVICE_LIST, *PDEVICE_LIST; 38 | // 39 | void InitialImageData(); 40 | void ListImageDataInitial(const UINT); 41 | char EnumWDMDriver(const UINT, const UINT); 42 | void GetDriverDetialInfo(HTREEITEM, const UINT, const char *, const int, const int); 43 | void GetDeviceInstanceID(HDEVINFO, SP_DEVINFO_DATA*, char*); 44 | void GetDeviceInterfaceInfo(HDEVINFO, SP_DEVINFO_DATA, char*); 45 | void GetOtherInfo(GUID, const short, const UINT, const UINT); 46 | void FindSpecResource(const DEVINST, const DWORD, const short, const UINT); 47 | // 48 | HTREEITEM MakeRootTree(); 49 | // 50 | char InitialDeviceOrder(); 51 | DEVICE_ORDER* AllocNewDeviceOrderNode(); 52 | char AddNewDeviceOrderNode(const char*); 53 | short FindDeviceOrder(const char*); 54 | void FreeAllDeviceOrderNode(); 55 | // 56 | char InitialDeviceList(); 57 | DEVICE_LIST* AllocNewDeviceNode(); 58 | char AddNewDeviceNode(const GUID, const char*, const char*, 59 | const char*, const int, const short); 60 | char FindDeviceName(const char*, const UINT, const UINT); 61 | void GetDeviceDetailInfo(DEVICE_LIST*); 62 | void DisplayDriverDetailInfo(HTREEITEM, const UINT, 63 | const char*, const int, const int); 64 | void FreeAllocDeviceNode(); 65 | // 66 | void GetMemoryResource(MEM_DES*, const ULONG, const UINT); 67 | void GetIOResource(IO_DES*, const ULONG, const UINT); 68 | void GetDMAResource(DMA_DES*, const ULONG, const UINT); 69 | void GetIRQResource(IRQ_DES*, const ULONG, const UINT); 70 | // 71 | void GetMoreInformation(HDEVINFO, SP_DEVINFO_DATA, const UINT); 72 | // 73 | #ifdef __cplusplus 74 | } 75 | #endif 76 | // 77 | #endif 78 | -------------------------------------------------------------------------------- /WebBrowserDlg.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | // WebBrowserDlg.cpp : implementation file 17 | // 18 | 19 | #include "stdafx.h" 20 | #include "IntelliTask.h" 21 | #include "WebBrowserDlg.h" 22 | 23 | // CWebBrowserDlg dialog 24 | 25 | IMPLEMENT_DYNAMIC(CWebBrowserDlg, CDialogEx) 26 | 27 | CWebBrowserDlg::CWebBrowserDlg(CWnd* pParent /*=nullptr*/) 28 | : CDialogEx(IDD_WebBrowserDlg, pParent) 29 | { 30 | } 31 | 32 | CWebBrowserDlg::~CWebBrowserDlg() 33 | { 34 | } 35 | 36 | void CWebBrowserDlg::DoDataExchange(CDataExchange* pDX) 37 | { 38 | CDialogEx::DoDataExchange(pDX); 39 | } 40 | 41 | BEGIN_MESSAGE_MAP(CWebBrowserDlg, CDialogEx) 42 | ON_WM_DESTROY() 43 | ON_WM_SIZE() 44 | END_MESSAGE_MAP() 45 | 46 | // CWebBrowserDlg message handlers 47 | 48 | BOOL CWebBrowserDlg::OnInitDialog() 49 | { 50 | CDialogEx::OnInitDialog(); 51 | 52 | CRect rectClient; 53 | GetClientRect(rectClient); 54 | 55 | m_pCustomControl.CreateAsync( 56 | WS_VISIBLE | WS_CHILD, 57 | rectClient, 58 | this, 59 | 1, 60 | [this]() { 61 | m_pCustomControl.SetParentView((CView*)this); 62 | m_pCustomControl.DisablePopups(); 63 | m_pCustomControl.Navigate(USER_MANUAL_URL, nullptr); 64 | 65 | m_pCustomControl.RegisterCallback(CWebBrowser::CallbackType::TitleChanged, [this]() { 66 | CString strTitle = m_pCustomControl.GetTitle(); 67 | SetWindowText(strTitle); 68 | }); 69 | }); 70 | 71 | return TRUE; // return TRUE unless you set the focus to a control 72 | // EXCEPTION: OCX Property Pages should return FALSE 73 | } 74 | 75 | void CWebBrowserDlg::OnDestroy() 76 | { 77 | VERIFY(m_pCustomControl.DestroyWindow()); 78 | 79 | CDialogEx::OnDestroy(); 80 | } 81 | 82 | void CWebBrowserDlg::OnSize(UINT nType, int cx, int cy) 83 | { 84 | CDialogEx::OnSize(nType, cx, cy); 85 | 86 | if (m_pCustomControl.GetSafeHwnd() != nullptr) 87 | { 88 | m_pCustomControl.MoveWindow(0, 0, cx, cy); 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /MainFrame.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | // MainFrame.h : interface of the CMainFrame class 17 | // 18 | 19 | #pragma once 20 | 21 | #include "ChildView.h" 22 | #include "ProcessView.h" 23 | 24 | class CMainFrame : public CFrameWndEx 25 | { 26 | 27 | public: 28 | CMainFrame(); 29 | protected: 30 | DECLARE_DYNAMIC(CMainFrame) 31 | 32 | // Attributes 33 | public: 34 | 35 | // Operations 36 | public: 37 | 38 | // Overrides 39 | public: 40 | virtual BOOL PreCreateWindow(CREATESTRUCT& cs); 41 | virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo); 42 | 43 | // Implementation 44 | public: 45 | virtual ~CMainFrame(); 46 | #ifdef _DEBUG 47 | virtual void AssertValid() const; 48 | virtual void Dump(CDumpContext& dc) const; 49 | #endif 50 | 51 | protected: // control bar embedded members 52 | CMFCRibbonBar m_wndRibbonBar; 53 | CMFCRibbonApplicationButton* m_MainButton; 54 | CMFCToolBarImages m_PanelImages; 55 | CMFCRibbonStatusBar m_wndStatusBar; 56 | CMFCCaptionBar m_wndCaptionBar; 57 | // CChildView m_wndView; 58 | CProcessView* m_pProcessView; 59 | 60 | // Generated message map functions 61 | protected: 62 | afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 63 | virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext); 64 | afx_msg void OnSetFocus(CWnd *pOldWnd); 65 | afx_msg void OnViewCaptionBar(); 66 | afx_msg void OnUpdateViewCaptionBar(CCmdUI* pCmdUI); 67 | afx_msg void OnOptions(); 68 | bool CreateCaptionBar(); 69 | afx_msg void OnProperties(); 70 | afx_msg void OnUpdateProperties(CCmdUI *pCmdUI); 71 | afx_msg void OnKillProcess(); 72 | afx_msg void OnUpdateKillProcess(CCmdUI *pCmdUI); 73 | afx_msg void OnDevices(); 74 | afx_msg void OnPrograms(); 75 | afx_msg void OnTwitter(); 76 | afx_msg void OnLinkedin(); 77 | afx_msg void OnFacebook(); 78 | afx_msg void OnInstagram(); 79 | afx_msg void OnIssues(); 80 | afx_msg void OnDiscussions(); 81 | afx_msg void OnWiki(); 82 | afx_msg void OnUserManual(); 83 | afx_msg void OnCheckForUpdates(); 84 | 85 | DECLARE_MESSAGE_MAP() 86 | }; 87 | -------------------------------------------------------------------------------- /IntelliTask.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.11.35312.102 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IntelliTask", "IntelliTask.vcxproj", "{410453CB-78EF-4DA1-844C-5AF252950AAF}" 7 | ProjectSection(ProjectDependencies) = postProject 8 | {B404DF9B-63E6-4D23-8116-A0C28B9DA2A7} = {B404DF9B-63E6-4D23-8116-A0C28B9DA2A7} 9 | EndProjectSection 10 | EndProject 11 | Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Setup", "Setup\Setup.vdproj", "{57BE5266-2E35-40D1-9FCA-C46478E3369D}" 12 | EndProject 13 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genUp4win", "genUp4win\genUp4win.vcxproj", "{B404DF9B-63E6-4D23-8116-A0C28B9DA2A7}" 14 | EndProject 15 | Global 16 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 17 | Debug|Win32 = Debug|Win32 18 | Debug|x64 = Debug|x64 19 | Release|Win32 = Release|Win32 20 | Release|x64 = Release|x64 21 | EndGlobalSection 22 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 23 | {410453CB-78EF-4DA1-844C-5AF252950AAF}.Debug|Win32.ActiveCfg = Debug|Win32 24 | {410453CB-78EF-4DA1-844C-5AF252950AAF}.Debug|Win32.Build.0 = Debug|Win32 25 | {410453CB-78EF-4DA1-844C-5AF252950AAF}.Debug|x64.ActiveCfg = Debug|x64 26 | {410453CB-78EF-4DA1-844C-5AF252950AAF}.Debug|x64.Build.0 = Debug|x64 27 | {410453CB-78EF-4DA1-844C-5AF252950AAF}.Release|Win32.ActiveCfg = Release|Win32 28 | {410453CB-78EF-4DA1-844C-5AF252950AAF}.Release|Win32.Build.0 = Release|Win32 29 | {410453CB-78EF-4DA1-844C-5AF252950AAF}.Release|x64.ActiveCfg = Release|x64 30 | {410453CB-78EF-4DA1-844C-5AF252950AAF}.Release|x64.Build.0 = Release|x64 31 | {57BE5266-2E35-40D1-9FCA-C46478E3369D}.Debug|Win32.ActiveCfg = Debug 32 | {57BE5266-2E35-40D1-9FCA-C46478E3369D}.Debug|x64.ActiveCfg = Debug 33 | {57BE5266-2E35-40D1-9FCA-C46478E3369D}.Debug|x64.Build.0 = Debug 34 | {57BE5266-2E35-40D1-9FCA-C46478E3369D}.Release|Win32.ActiveCfg = Release 35 | {57BE5266-2E35-40D1-9FCA-C46478E3369D}.Release|x64.ActiveCfg = Release 36 | {57BE5266-2E35-40D1-9FCA-C46478E3369D}.Release|x64.Build.0 = Release 37 | {B404DF9B-63E6-4D23-8116-A0C28B9DA2A7}.Debug|Win32.ActiveCfg = Debug|Win32 38 | {B404DF9B-63E6-4D23-8116-A0C28B9DA2A7}.Debug|Win32.Build.0 = Debug|Win32 39 | {B404DF9B-63E6-4D23-8116-A0C28B9DA2A7}.Debug|x64.ActiveCfg = Debug|x64 40 | {B404DF9B-63E6-4D23-8116-A0C28B9DA2A7}.Debug|x64.Build.0 = Debug|x64 41 | {B404DF9B-63E6-4D23-8116-A0C28B9DA2A7}.Release|Win32.ActiveCfg = Release|Win32 42 | {B404DF9B-63E6-4D23-8116-A0C28B9DA2A7}.Release|Win32.Build.0 = Release|Win32 43 | {B404DF9B-63E6-4D23-8116-A0C28B9DA2A7}.Release|x64.ActiveCfg = Release|x64 44 | {B404DF9B-63E6-4D23-8116-A0C28B9DA2A7}.Release|x64.Build.0 = Release|x64 45 | EndGlobalSection 46 | GlobalSection(SolutionProperties) = preSolution 47 | HideSolutionNode = FALSE 48 | EndGlobalSection 49 | EndGlobal 50 | -------------------------------------------------------------------------------- /MFCListView.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | // MFCListView.cpp : implementation file 17 | // 18 | 19 | #include "stdafx.h" 20 | #include "IntelliTask.h" 21 | #include "MFCListView.h" 22 | 23 | // CMFCListView 24 | 25 | IMPLEMENT_DYNCREATE(CMFCListView, CFormView) 26 | 27 | CMFCListView::CMFCListView() 28 | : CFormView(CMFCListView::IDD) 29 | { 30 | } 31 | 32 | CMFCListView::~CMFCListView() 33 | { 34 | } 35 | 36 | void CMFCListView::DoDataExchange(CDataExchange* pDX) 37 | { 38 | CFormView::DoDataExchange(pDX); 39 | } 40 | 41 | BEGIN_MESSAGE_MAP(CMFCListView, CFormView) 42 | ON_WM_CREATE() 43 | ON_WM_DESTROY() 44 | ON_WM_SIZE() 45 | ON_WM_ERASEBKGND() 46 | END_MESSAGE_MAP() 47 | 48 | // CMFCListView diagnostics 49 | 50 | #ifdef _DEBUG 51 | void CMFCListView::AssertValid() const 52 | { 53 | CFormView::AssertValid(); 54 | } 55 | 56 | #ifndef _WIN32_WCE 57 | void CMFCListView::Dump(CDumpContext& dc) const 58 | { 59 | CFormView::Dump(dc); 60 | } 61 | #endif 62 | #endif //_DEBUG 63 | 64 | // CMFCListView message handlers 65 | 66 | int CMFCListView::OnCreate(LPCREATESTRUCT lpCreateStruct) 67 | { 68 | if (CFormView::OnCreate(lpCreateStruct) == -1) 69 | return -1; 70 | 71 | if (!m_mfcListCtrl.Create(WS_CHILD | WS_VISIBLE | LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL, CRect(0, 0, 0, 0), this, ID_MFCLISTCTRL)) 72 | return -1; 73 | 74 | return 0; 75 | } 76 | 77 | void CMFCListView::OnDestroy() 78 | { 79 | VERIFY(m_mfcListCtrl.DestroyWindow()); 80 | 81 | CFormView::OnDestroy(); 82 | } 83 | 84 | void CMFCListView::OnSize(UINT nType, int cx, int cy) 85 | { 86 | CFormView::OnSize(nType, cx, cy); 87 | 88 | if (m_mfcListCtrl.GetSafeHwnd() != nullptr) 89 | m_mfcListCtrl.MoveWindow(0, 0, cx, cy); 90 | } 91 | 92 | BOOL CMFCListView::OnEraseBkgnd(CDC* pDC) 93 | { 94 | UNREFERENCED_PARAMETER(pDC); 95 | // return CFormView::OnEraseBkgnd(pDC); 96 | 97 | return TRUE; 98 | } 99 | 100 | void CMFCListView::OnInitialUpdate() 101 | { 102 | CFormView::OnInitialUpdate(); 103 | 104 | SetScrollSizes(MM_TEXT, CSize(0, 0)); 105 | } 106 | 107 | BOOL CMFCListView::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) 108 | { 109 | if (m_mfcListCtrl.OnCmdMsg(nID, nCode, pExtra, pHandlerInfo)) 110 | return TRUE; 111 | 112 | return CFormView::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo); 113 | } 114 | -------------------------------------------------------------------------------- /sinstance.h: -------------------------------------------------------------------------------- 1 | /* 2 | Module : sinstance.h 3 | Purpose: Defines the interface for a C++ wrapper class to do instance checking 4 | Created: PJN / 29-07-1998 5 | 6 | Copyright (c) 1996 - 2022 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com) 7 | 8 | All rights reserved. 9 | 10 | Copyright / Usage Details: 11 | 12 | You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise) 13 | when your product is released in binary form. You are allowed to modify the source code in any way you want 14 | except you cannot modify the copyright details at the top of each module. If you want to distribute source 15 | code with your application, then you are only allowed to distribute versions released by the author. This is 16 | to maintain a single distribution point for the source code. 17 | 18 | */ 19 | 20 | 21 | /////////////////////////// Macros / Defines ////////////////////////////////// 22 | 23 | #pragma once 24 | 25 | #ifndef __SINSTANCE_H__ 26 | #define __SINSTANCE_H__ 27 | 28 | #ifndef CSINGLEINSTANCE_EXT_CLASS 29 | #define CSINGLEINSTANCE_EXT_CLASS 30 | #endif //#ifndef CSINGLEINSTANCE_EXT_CLASS 31 | 32 | #ifndef CSINGLEINSTANCE_EXT_API 33 | #define CSINGLEINSTANCE_EXT_API 34 | #endif //#ifndef CSINGLEINSTANCE_EXT_API 35 | 36 | 37 | /////////////////////////// Includes ////////////////////////////////////////// 38 | 39 | #ifndef __ATLSYNC_H__ 40 | #pragma message("To avoid this message, please put atlsync.h in your pre compiled header (normally stdafx.h)") 41 | #include 42 | #endif //#ifndef __ATLSYNC_H__ 43 | 44 | #ifndef __ATLSTR_H__ 45 | #pragma message("To avoid this message, please put atlstr.h in your pre compiled header (normally stdafx.h)") 46 | #include 47 | #endif //#ifndef __ATLSTR_H__ 48 | 49 | 50 | /////////////////////////// Classes ////////////////////////////////////////// 51 | 52 | class CSINGLEINSTANCE_EXT_CLASS CInstanceChecker 53 | { 54 | public: 55 | //Constructors / Destructors 56 | CInstanceChecker(_In_z_ LPCTSTR pszUniqueName); 57 | CInstanceChecker(_In_ const CInstanceChecker&) = delete; 58 | CInstanceChecker(_In_ CInstanceChecker&&) = delete; 59 | virtual ~CInstanceChecker() = default; 60 | 61 | //General functions 62 | CInstanceChecker& operator=(_In_ const CInstanceChecker&) = delete; 63 | CInstanceChecker& operator=(_In_ CInstanceChecker&&) = delete; 64 | _Return_type_success_(return != false) virtual bool TrackFirstInstanceRunning(_In_ HWND hWindowToTrack); 65 | _Return_type_success_(return != false) virtual bool PreviousInstanceRunning(); 66 | _Return_type_success_(return != false) virtual bool ActivatePreviousInstance(_In_opt_ LPCTSTR lpCmdLine = nullptr, _In_ ULONG_PTR dwCopyDataItemData = 0, _In_ DWORD dwTimeout = 30000, HWND hSender = nullptr); 67 | _Return_type_success_(return != false) virtual bool QuitPreviousInstance(_In_ int nExitCode = 0); 68 | _Return_type_success_(return != false) virtual bool FindPreviousHWND(_Out_ HWND& hPrevWnd); 69 | 70 | protected: 71 | //Virtual methods 72 | virtual ATL::CAtlString GetExecuteMutexName(); 73 | _Return_type_success_(return != false) virtual bool CreateExecuteMutexIfNecessary(); 74 | 75 | //Member variables 76 | ATL::CAtlString m_sName; 77 | ATL::CHandle m_MMF; 78 | ATL::CMutex m_ExecuteMutex; 79 | }; 80 | 81 | #endif //#ifndef __SINSTANCE_H__ 82 | -------------------------------------------------------------------------------- /old/SysSetup.c: -------------------------------------------------------------------------------- 1 | // 2 | // (w)ritten by Chuan-Liang Teng 2006, mailto:clteng@ms6.hinet.net 3 | // 4 | #include "syssetup.h" 5 | // 6 | extern HWND _hDlg; 7 | // 8 | char StartDriver(const short wError, const short wStart, 9 | const char* lpszDriverPath, const char* lpszServiceName) 10 | { 11 | SC_HANDLE hSCManager = 0L; 12 | SC_HANDLE hService = 0L; 13 | // 14 | hSCManager = OpenSCManager(0L, 15 | 0L, 16 | SC_MANAGER_ALL_ACCESS); 17 | 18 | if (hSCManager) 19 | { 20 | hService = CreateService(hSCManager, 21 | lpszServiceName, 22 | lpszServiceName, 23 | SERVICE_ALL_ACCESS, 24 | SERVICE_KERNEL_DRIVER, 25 | wStart, 26 | wError, 27 | lpszDriverPath, 28 | 0L, 29 | 0L, 30 | 0L, 31 | 0L, 32 | 0L); 33 | 34 | if (!hService) 35 | { 36 | DWORD dwErrorCode = GetLastError(); 37 | if (dwErrorCode == ERROR_SERVICE_EXISTS) 38 | { 39 | hService = OpenService(hSCManager, lpszServiceName, SERVICE_ALL_ACCESS); 40 | } 41 | else 42 | { 43 | ShowErrorMsg(_hDlg, dwErrorCode, "CreateService"); 44 | return 0; 45 | }; 46 | }; 47 | // 48 | if (hService) 49 | { 50 | if (!StartService(hService, 0, 0L)) 51 | { 52 | CloseServiceHandle(hService); 53 | ShowErrorMsg(_hDlg, GetLastError(), "StartService"); 54 | return 0; 55 | }; 56 | }; 57 | // 58 | CloseServiceHandle(hSCManager); 59 | }; 60 | // 61 | return 1; 62 | }; 63 | // 64 | char StopDriver(const char* lpszServiceName) 65 | { 66 | SC_HANDLE hSCManager = 0L; 67 | SC_HANDLE hService = 0L; 68 | char bResult = 0; 69 | SERVICE_STATUS ServiceStatus; 70 | 71 | hSCManager = OpenSCManager(0L, 72 | 0L, 73 | SC_MANAGER_ALL_ACCESS); 74 | // 75 | if (hSCManager) 76 | { 77 | hService = OpenService(hSCManager, 78 | lpszServiceName, 79 | SERVICE_ALL_ACCESS); 80 | if (hService) 81 | { 82 | bResult = (char)ControlService(hService, SERVICE_CONTROL_STOP, &ServiceStatus); 83 | bResult = bResult && DeleteService(hService); 84 | CloseServiceHandle(hService); 85 | }; 86 | // 87 | CloseServiceHandle(hSCManager); 88 | }; 89 | // 90 | return bResult; 91 | }; 92 | // 93 | void* OpenDevice(const char* lpszDevicePath) 94 | { 95 | HANDLE hDevice = (HANDLE)-1; 96 | // 97 | hDevice = CreateFile(lpszDevicePath, 98 | GENERIC_READ | GENERIC_WRITE, 99 | FILE_SHARE_READ | FILE_SHARE_WRITE, 100 | 0L, 101 | OPEN_EXISTING, 102 | 0, 103 | 0L); 104 | // 105 | return hDevice; 106 | }; 107 | -------------------------------------------------------------------------------- /ProcessList.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | #pragma once 17 | 18 | #include "CpuUsage.h" 19 | 20 | /////////////////////////////////////////////////////////////////////////////// 21 | // CProcessData command target 22 | /////////////////////////////////////////////////////////////////////////////// 23 | 24 | class CProcessData : public CObject 25 | { 26 | protected: 27 | DECLARE_DYNAMIC(CProcessData) 28 | 29 | public: 30 | CProcessData(); 31 | CProcessData(DWORD dwProcessID, DWORD dwParentProcessID, DWORD dwPriority, DOUBLE cpuUsage, DWORD memUsage, 32 | CString strFileName, CString strFilePath, CString strDescription, CString strCompany, CString strVersion); 33 | virtual ~CProcessData(); 34 | 35 | public: 36 | DWORD GetProcessID() { return m_dwProcessID; } 37 | void SetProcessID(DWORD dwProcessID) { m_dwProcessID = dwProcessID; } 38 | DWORD GetParentProcessID() { return m_dwParentProcessID; } 39 | void SetParentProcessID(DWORD dwParentProcessID) { m_dwParentProcessID = dwParentProcessID; } 40 | DWORD GetPriority() { return m_dwPriority; } 41 | void SetPriority(DWORD dwPriority) { m_dwPriority = dwPriority; } 42 | DOUBLE GetProcessorUsage() { return m_cpuUsage; } 43 | void SetProcessorUsage(DOUBLE cpuUsage) { m_cpuUsage = cpuUsage; } 44 | DWORD GetMemoryUsage() { return m_memUsage; } 45 | void SetMemoryUsage(DWORD memUsage) { m_memUsage = memUsage; } 46 | CString GetFileName() { return m_strFileName; } 47 | void SetFileName(CString strFileName) { m_strFileName = strFileName; } 48 | CString GetFilePath() { return m_strFilePath; } 49 | void SetFilePath(CString strFilePath) { m_strFilePath = strFilePath; } 50 | CString GetDescription() { return m_strDescription; } 51 | void SetDescription(CString strDescription) { m_strDescription = strDescription; } 52 | CString GetCompany() { return m_strCompany; } 53 | void SetCompany(CString strCompany) { m_strCompany = strCompany; } 54 | CString GetVersion() { return m_strVersion; } 55 | void SetVersion(CString strVersion) { m_strVersion = strVersion; } 56 | 57 | public: 58 | CpuUsage m_pCpuUsage; 59 | protected: 60 | DWORD m_dwProcessID; 61 | DWORD m_dwParentProcessID; 62 | DWORD m_dwPriority; 63 | DOUBLE m_cpuUsage; 64 | DWORD m_memUsage; 65 | CString m_strFileName; 66 | CString m_strFilePath; 67 | CString m_strDescription; 68 | CString m_strCompany; 69 | CString m_strVersion; 70 | }; 71 | 72 | typedef CArray CProcessList; 73 | 74 | /////////////////////////////////////////////////////////////////////////////// 75 | // CSystemSnapshot command target 76 | /////////////////////////////////////////////////////////////////////////////// 77 | 78 | class CSystemSnapshot : public CObject 79 | { 80 | protected: 81 | DECLARE_DYNAMIC(CSystemSnapshot) 82 | 83 | public: 84 | CSystemSnapshot(); 85 | virtual ~CSystemSnapshot(); 86 | 87 | public: 88 | bool RemoveAll(); 89 | int GetSize() { return (int)m_arrProcessList.GetSize(); } 90 | CProcessData* GetAt(int nIndex) { return m_arrProcessList.GetAt(nIndex); } 91 | 92 | bool Refresh(); 93 | CProcessData* InsertProcess(PROCESSENTRY32& pe32); 94 | CProcessData* UpdateProcess(DWORD dwProcessID); 95 | bool RemoveProcess(DWORD dwProcessID); 96 | CProcessData* GetProcessID(DWORD dwProcessID); 97 | 98 | protected: 99 | CProcessList m_arrProcessList; 100 | }; 101 | -------------------------------------------------------------------------------- /stdafx.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | // This MFC Samples source code demonstrates using MFC Microsoft Office Fluent User Interface 17 | // (the "Fluent UI") and is provided only as referential material to supplement the 18 | // Microsoft Foundation Classes Reference and related electronic documentation 19 | // included with the MFC C++ library software. 20 | // License terms to copy, use or distribute the Fluent UI are available separately. 21 | // To learn more about our Fluent UI licensing program, please visit 22 | // http://msdn.microsoft.com/officeui. 23 | // 24 | // Copyright (C) Microsoft Corporation 25 | // All rights reserved. 26 | 27 | // stdafx.h : include file for standard system include files, 28 | // or project specific include files that are used frequently, 29 | // but are changed infrequently 30 | 31 | #pragma once 32 | 33 | #ifndef _SECURE_ATL 34 | #define _SECURE_ATL 1 35 | #endif 36 | 37 | #ifndef VC_EXTRALEAN 38 | #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers 39 | #endif 40 | 41 | #include "targetver.h" 42 | 43 | #define _CRT_SECURE_NO_WARNINGS 44 | #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit 45 | 46 | // turns off MFC's hiding of some common and often safely ignored warning messages 47 | #define _AFX_ALL_WARNINGS 48 | 49 | #include // MFC core and standard components 50 | #include // MFC extensions 51 | #include // MFC Automation classes 52 | 53 | // Here, minimal DB support is requested. No view is chosen. 54 | 55 | #ifndef _AFX_NO_OLE_SUPPORT 56 | #include // MFC support for Internet Explorer 4 Common Controls 57 | #endif 58 | #ifndef _AFX_NO_AFXCMN_SUPPORT 59 | #include // MFC support for Windows Common Controls 60 | #endif // _AFX_NO_AFXCMN_SUPPORT 61 | 62 | #include // MFC support for ribbons and control bars 63 | #include // MFC socket extensions 64 | 65 | #include // ODBC 66 | #include 67 | 68 | #ifdef _UNICODE 69 | #if defined _M_IX86 70 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"") 71 | #elif defined _M_X64 72 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"") 73 | #else 74 | #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") 75 | #endif 76 | #endif 77 | 78 | #include 79 | #include 80 | #pragma comment(lib, "psapi.lib") 81 | 82 | #define ID_MFCLISTCTRL (WM_USER+0x1234) 83 | 84 | #define PID_COLUMN_LENGTH 70 85 | #define PROCESS_COLUMN_LENGTH 120 86 | #define CPU_USAGE_COLUMN_LENGTH 70 87 | #define MEM_USAGE_COLUMN_LENGTH 70 88 | #define DESCRIPTION_COLUMN_SIZE 120 89 | #define COMPANY_COLUMN_LENGTH 120 90 | #define VERSION_COLUMN_LENGTH 120 91 | 92 | #include 93 | #include 94 | #include 95 | #include 96 | #include 97 | 98 | #define INSTALLER_URL _T("https://www.moga.doctor/freeware/IntelliTaskSetup.msi") 99 | #define APPLICATION_URL _T("https://www.moga.doctor/freeware/IntelliTask.xml") 100 | #define USER_MANUAL_URL _T("https://www.moga.doctor/intellitask/") 101 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![IntelliTask.png](IntelliTask.png) 2 | 3 | Download: 4 | - [IntelliTaskSetup.msi](https://www.moga.doctor/freeware/IntelliTaskSetup.msi) 5 | - [IntelliTask.zip](https://www.moga.doctor/freeware/IntelliTask.zip) 6 | 7 | ## Introduction 8 | 9 | _IntelliTask_ is a free (as in “free speech” and also as in “free beer”) process/service manager. Running in the Microsoft Windows environment, its use is governed by [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.html). _IntelliTask_ is written in C++ and uses pure Win32 API and STL which ensures a higher execution speed and smaller program size. By optimizing as many routines as possible without losing user friendliness, _IntelliTask_ is trying to reduce the world carbon dioxide emissions. When using less CPU power, the PC can throttle down and reduce power consumption, resulting in a greener environment. I hope you enjoy _IntelliTask_ as much as I enjoy coding it! 10 | 11 | _IntelliTask_ provides information about processes and services running on your computer. It also displays the most commonly used performance measures for processes. You can use _IntelliTask_ to monitor key indicators of your computer’s performance. You can see the status of the programs that are running and end programs that have stopped responding. You can also assess the activity of running processes using as many as fifteen parameters, and see graphs and data on CPU and memory usage. In addition, if you are connected to a network, you can view network status and see how your network is functioning. 12 | 13 | ## Getting started 14 | 15 | ### Install IntelliTask using the installer 16 | 17 | - Download the installer 18 | - Run the executable binary and follow the installation flow 19 | 20 | The installer will likely require Administrative privileges in order to install _IntelliTask_ (and later, to update _IntelliTask_ or install or update plugins, or anything else that requires writing to the installation directory). If you do not have Administrative privileges, you either need to tell the installer to use a location where you do have write permission (though that may still ask for Administrator privileges), or you may choose not use the installer and instead run a portable edition from a directory where you have write permission. 21 | 22 | ### Install IntelliTask from zip 23 | 24 | These instructions will allow you to run a portable or mini-portable (also called “minimalist”), without requiring administrative privileges. 25 | 26 | - Create a new folder somewhere that you have write-permission 27 | - Unzip the content into the new folder 28 | - Run _IntelliTask_ from the new folder 29 | 30 | The portable zip edition of _IntelliTask_ can be removed by deleting the directory they came in. If you manually set up file associations or context-menu entries in the OS, it is your responsibility to remove them yourself. 31 | 32 | ## Application's menu 33 | 34 | The _IntelliTask_ menu features the application's most important functions: 35 | 36 | - **Properties**: Shows file properties. 37 | - **Kill process**: Kills selectedd process. 38 | - **Device Manager**: Shows local computer devices. 39 | - **Installed Programs**: Shows computer installed programs. 40 | 41 | ## Create and Submit your Pull Request 42 | 43 | As noted in the [Contributing Rules](https://github.com/mihaimoga/IntelliTask/blob/main/CONTRIBUTING.md) for _IntelliTask_, all Pull Requests need to be attached to a issue on GitHub. So the first step is to create an issue which requests that the functionality be improved (if it was already there) or added (if it was not yet there); in your issue, be sure to explain that you have the functionality definition ready, and will be submitting a Pull Request. The second step is to use the GitHub interface to create the Pull Request from your fork into the main repository. The final step is to wait for and respond to feedback from the developers as needed, until such time as your PR is accepted or rejected. 44 | 45 | ## Acknowledges 46 | 47 | This open source project uses the following libraries: 48 | 49 | - [genUp4win](https://github.com/mihaimoga/genUp4win) 50 | - PJ Naughter's [CHLinkCtrl](https://www.naughter.com/hlinkctrl.html) 51 | - PJ Naughter's [CInstanceChecker](https://www.naughter.com/sinstance.html) 52 | - PJ Naughter's [CVersionInfo](https://www.naughter.com/versioninfo.html) 53 | - PJ Naughter's [DtWinVer](https://www.naughter.com/dtwinver.html) 54 | - Mizan Rahman's [CWndResizer](https://www.codeproject.com/articles/MFC-C-Helper-Class-for-Window-Resizing) 55 | -------------------------------------------------------------------------------- /CheckForUpdatesDlg.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | // CheckForUpdatesDlg.cpp : implementation file 17 | // 18 | 19 | #include "stdafx.h" 20 | #include "IntelliTask.h" 21 | #include "CheckForUpdatesDlg.h" 22 | 23 | #include "genUp4win/genUp4win.h" 24 | #if _WIN64 25 | #ifdef _DEBUG 26 | #pragma comment(lib, "x64/Debug/genUp4win.lib") 27 | #else 28 | #pragma comment(lib, "x64/Release/genUp4win.lib") 29 | #endif 30 | #else 31 | #ifdef _DEBUG 32 | #pragma comment(lib, "Debug/genUp4win.lib") 33 | #else 34 | #pragma comment(lib, "Release/genUp4win.lib") 35 | #endif 36 | #endif 37 | 38 | // CCheckForUpdatesDlg dialog 39 | 40 | IMPLEMENT_DYNAMIC(CCheckForUpdatesDlg, CDialogEx) 41 | 42 | CCheckForUpdatesDlg::CCheckForUpdatesDlg(CWnd* pParent /*=nullptr*/) 43 | : CDialogEx(IDD_CheckForUpdatesDlg, pParent) 44 | { 45 | m_nUpdateThreadID = 0; 46 | m_hUpdateThread = nullptr; 47 | m_nTimerID = 0; 48 | } 49 | 50 | CCheckForUpdatesDlg::~CCheckForUpdatesDlg() 51 | { 52 | } 53 | 54 | void CCheckForUpdatesDlg::DoDataExchange(CDataExchange* pDX) 55 | { 56 | CDialogEx::DoDataExchange(pDX); 57 | DDX_Control(pDX, IDC_STATUS, m_ctrlStatusMessage); 58 | DDX_Control(pDX, IDC_PROGRESS, m_ctrlProgress); 59 | } 60 | 61 | BEGIN_MESSAGE_MAP(CCheckForUpdatesDlg, CDialogEx) 62 | ON_WM_TIMER() 63 | END_MESSAGE_MAP() 64 | 65 | // CCheckForUpdatesDlg message handlers 66 | CCheckForUpdatesDlg* g_dlgCheckForUpdates = nullptr; 67 | void UI_Callback(int, const std::wstring& strMessage) 68 | { 69 | if (g_dlgCheckForUpdates != nullptr) 70 | { 71 | g_dlgCheckForUpdates->m_ctrlStatusMessage.SetWindowText(strMessage.c_str()); 72 | g_dlgCheckForUpdates->m_ctrlStatusMessage.UpdateWindow(); 73 | } 74 | } 75 | 76 | bool g_bThreadRunning = false; 77 | bool g_bNewUpdateFound = false; 78 | DWORD WINAPI UpdateThreadProc(LPVOID lpParam) 79 | { 80 | UNREFERENCED_PARAMETER(lpParam); 81 | 82 | g_bThreadRunning = true; 83 | if (g_dlgCheckForUpdates != nullptr) 84 | { 85 | g_dlgCheckForUpdates->m_ctrlProgress.SetMarquee(TRUE, 30); 86 | } 87 | const DWORD nLength = 0x1000 /* _MAX_PATH */; 88 | TCHAR lpszFilePath[nLength] = { 0, }; 89 | GetModuleFileName(nullptr, lpszFilePath, nLength); 90 | g_bNewUpdateFound = CheckForUpdates(lpszFilePath, APPLICATION_URL, UI_Callback); 91 | if (g_dlgCheckForUpdates != nullptr) 92 | { 93 | g_dlgCheckForUpdates->m_ctrlProgress.SetMarquee(FALSE, 30); 94 | } 95 | g_bThreadRunning = false; 96 | 97 | ::ExitThread(0); 98 | // return 0; 99 | } 100 | 101 | BOOL CCheckForUpdatesDlg::OnInitDialog() 102 | { 103 | CDialogEx::OnInitDialog(); 104 | 105 | #ifdef _DEBUG 106 | const DWORD nLength = 0x1000 /* _MAX_PATH */; 107 | TCHAR lpszFilePath[nLength] = { 0, }; 108 | GetModuleFileName(nullptr, lpszFilePath, nLength); 109 | WriteConfigFile(lpszFilePath, INSTALLER_URL); 110 | #endif 111 | 112 | g_dlgCheckForUpdates = this; 113 | m_hUpdateThread = ::CreateThread(nullptr, 0, (LPTHREAD_START_ROUTINE)UpdateThreadProc, this, 0, &m_nUpdateThreadID); 114 | m_nTimerID = SetTimer(0x1234, 100, nullptr); 115 | 116 | return TRUE; // return TRUE unless you set the focus to a control 117 | // EXCEPTION: OCX Property Pages should return FALSE 118 | } 119 | 120 | void CCheckForUpdatesDlg::OnCancel() 121 | { 122 | while (g_bThreadRunning) 123 | Sleep(1000); 124 | CDialogEx::OnCancel(); 125 | } 126 | 127 | void CCheckForUpdatesDlg::OnTimer(UINT_PTR nIDEvent) 128 | { 129 | CDialogEx::OnTimer(nIDEvent); 130 | 131 | if (m_nTimerID == nIDEvent) 132 | { 133 | if (!g_bThreadRunning) 134 | { 135 | VERIFY(KillTimer(m_nTimerID)); 136 | CDialogEx::OnCancel(); 137 | if (g_bNewUpdateFound) 138 | { 139 | PostQuitMessage(0); 140 | } 141 | } 142 | } 143 | } 144 | -------------------------------------------------------------------------------- /VersionInfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | Module : VersionInfo.h 3 | Purpose: Interface for an C++ class encapsulation of Window's "Version Infos" 4 | 5 | Copyright (c) 2000 - 2022 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com) 6 | 7 | All rights reserved. 8 | 9 | Copyright / Usage Details: 10 | 11 | You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise) 12 | when your product is released in binary form. You are allowed to modify the source code in any way you want 13 | except you cannot modify the copyright details at the top of each module. If you want to distribute source 14 | code with your application, then you are only allowed to distribute versions released by the author. This is 15 | to maintain a single distribution point for the source code. 16 | 17 | */ 18 | 19 | 20 | /////////////////////////////// Macros / Defines ////////////////////////////// 21 | 22 | #pragma once 23 | 24 | #ifndef __VERSIONINFO_H__ 25 | #define __VERSIONINFO_H__ 26 | 27 | #ifndef CVERSIONINFO_EXT_CLASS 28 | #define CVERSIONINFO_EXT_CLASS 29 | #endif //#ifndef CVERSIONINFO_EXT_CLASS 30 | 31 | #ifndef CVERSIONINFO_EXT_API 32 | #define CVERSIONINFO_EXT_API 33 | #endif //#ifndef CVERSIONINFO_EXT_API 34 | 35 | #ifndef _STRING_ 36 | #pragma message("To avoid this message, please put string in your pre compiled header (normally stdafx.h)") 37 | #include 38 | #endif //#ifndef _STRING_ 39 | 40 | #ifndef _VECTOR_ 41 | #pragma message("To avoid this message, please put vector in your pre compiled header (normally stdafx.h)") 42 | #include 43 | #endif //#ifndef _VECTOR_ 44 | 45 | 46 | /////////////////////////////// Classes /////////////////////////////////////// 47 | 48 | class CVERSIONINFO_EXT_CLASS CVersionInfo 49 | { 50 | public: 51 | //Typedefs 52 | #ifdef _UNICODE 53 | using String = std::wstring; 54 | #else 55 | using String = std::string; 56 | #endif //#ifdef _UNICODE 57 | 58 | //Structs 59 | struct TRANSLATION 60 | { 61 | WORD m_wLangID; //e.g. 0x0409 LANG_ENGLISH, SUBLANG_ENGLISH_USA 62 | WORD m_wCodePage; //e.g. 1252 Codepage for Windows:Multilingual 63 | }; 64 | 65 | //Constructors / Destructors 66 | CVersionInfo() noexcept; 67 | CVersionInfo(_In_ const CVersionInfo&) = delete; 68 | CVersionInfo(_In_ CVersionInfo&&) = delete; 69 | ~CVersionInfo() noexcept; 70 | 71 | //Methods 72 | CVersionInfo& operator=(_In_ const CVersionInfo&) = delete; 73 | CVersionInfo& operator=(_In_ CVersionInfo&&) = delete; 74 | BOOL Load(_In_z_ LPCTSTR szFileName); 75 | _NODISCARD VS_FIXEDFILEINFO* GetFixedFileInfo() const noexcept; 76 | _NODISCARD DWORD GetFileFlagsMask() const noexcept; 77 | _NODISCARD DWORD GetFileFlags() const noexcept; 78 | _NODISCARD DWORD GetOS() const noexcept; 79 | _NODISCARD DWORD GetFileType() const noexcept; 80 | _NODISCARD DWORD GetFileSubType() const noexcept; 81 | _NODISCARD FILETIME GetCreationTime() const noexcept; 82 | _NODISCARD unsigned __int64 GetFileVersion() const noexcept; 83 | _NODISCARD unsigned __int64 GetProductVersion() const noexcept; 84 | _NODISCARD String GetValue(_In_z_ LPCTSTR pszKeyName) const; 85 | _NODISCARD String GetComments() const; 86 | _NODISCARD String GetCompanyName() const; 87 | _NODISCARD String GetFileDescription() const; 88 | _NODISCARD String GetFileVersionAsString() const; 89 | _NODISCARD String GetInternalName() const; 90 | _NODISCARD String GetLegalCopyright() const; 91 | _NODISCARD String GetLegalTrademarks() const; 92 | _NODISCARD String GetOriginalFilename() const; 93 | _NODISCARD String GetPrivateBuild() const; 94 | _NODISCARD String GetProductName() const; 95 | _NODISCARD String GetProductVersionAsString() const; 96 | _NODISCARD String GetSpecialBuild() const; 97 | _NODISCARD int GetNumberOfTranslations() const noexcept; 98 | _NODISCARD TRANSLATION* GetTranslation(_In_ int nIndex) const noexcept; 99 | void SetTranslation(_In_ int nIndex) noexcept; 100 | 101 | protected: 102 | //Methods 103 | void Unload() noexcept; 104 | 105 | //Data 106 | WORD m_wLangID; //The current language ID of the resource 107 | WORD m_wCharset; //The current Character set ID of the resource 108 | std::vector m_VerData; //Pointer to the version info blob 109 | TRANSLATION* m_pTranslations; //Pointer to the "\\VarFileInfo\\Translation" version info 110 | int m_nTranslations; //The number of translated version infos in the resource 111 | VS_FIXEDFILEINFO* m_pffi; //Pointer to the fixed size version info data 112 | }; 113 | 114 | #endif //#ifndef __VERSIONINFO_H__ 115 | -------------------------------------------------------------------------------- /CpuUsage.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | #include "StdAfx.h" 17 | #include 18 | #include "CpuUsage.h" 19 | 20 | CpuUsage::CpuUsage(void) 21 | : m_dwProcessID(0) 22 | , m_nCpuUsage(-1) 23 | , m_dwLastRun(0) 24 | , m_lRunCount(0) 25 | { 26 | ZeroMemory(&m_ftPrevSysKernel, sizeof(FILETIME)); 27 | ZeroMemory(&m_ftPrevSysUser, sizeof(FILETIME)); 28 | ZeroMemory(&m_ftPrevProcKernel, sizeof(FILETIME)); 29 | ZeroMemory(&m_ftPrevProcUser, sizeof(FILETIME)); 30 | 31 | SYSTEM_INFO sysInfo; 32 | GetSystemInfo(&sysInfo); 33 | m_nProcessors = sysInfo.dwNumberOfProcessors; 34 | } 35 | 36 | /********************************************** 37 | * CpuUsage::GetUsage 38 | * returns the percent of the CPU that this process 39 | * has used since the last time the method was called. 40 | * If there is not enough information, -1 is returned. 41 | * If the method is recalled to quickly, the previous value 42 | * is returned. 43 | ***********************************************/ 44 | DOUBLE CpuUsage::GetUsage() 45 | { 46 | HANDLE hProcess = nullptr; 47 | // create a local copy to protect against race conditions in setting the member variable 48 | DOUBLE nCpuCopy = m_nCpuUsage; 49 | if (::InterlockedIncrement(&m_lRunCount) == 1) 50 | { 51 | // If this is called too often, the measurement itself will greatly affect the results. 52 | if (!EnoughTimePassed()) 53 | { 54 | ::InterlockedDecrement(&m_lRunCount); 55 | return nCpuCopy; 56 | } 57 | 58 | FILETIME ftSysIdle, ftSysKernel, ftSysUser; 59 | FILETIME ftProcCreation, ftProcExit, ftProcKernel, ftProcUser; 60 | if ((hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, false, m_dwProcessID)) != nullptr) 61 | { 62 | if (!GetSystemTimes(&ftSysIdle, &ftSysKernel, &ftSysUser) || 63 | !GetProcessTimes(hProcess, &ftProcCreation, 64 | &ftProcExit, &ftProcKernel, &ftProcUser)) 65 | { 66 | ::InterlockedDecrement(&m_lRunCount); 67 | CloseHandle(hProcess); 68 | return nCpuCopy; 69 | } 70 | CloseHandle(hProcess); 71 | hProcess = nullptr; 72 | 73 | /* CPU usage is calculated by getting the total amount of time 74 | the system has operated since the last measurement 75 | (made up of kernel + user) and the total 76 | amount of time the process has run (kernel + user) */ 77 | ULONGLONG ftSysIdleDiff = SubtractTimes(ftSysIdle, m_ftPrevSysIdle); 78 | ULONGLONG ftSysKernelDiff = SubtractTimes(ftSysKernel, m_ftPrevSysKernel); 79 | ULONGLONG ftSysUserDiff = SubtractTimes(ftSysUser, m_ftPrevSysUser); 80 | 81 | ULONGLONG ftProcKernelDiff = SubtractTimes(ftProcKernel, m_ftPrevProcKernel); 82 | ULONGLONG ftProcUserDiff = SubtractTimes(ftProcUser, m_ftPrevProcUser); 83 | 84 | ULONGLONG nTotalSys = ftSysKernelDiff + ftSysUserDiff - ftSysIdleDiff; 85 | ULONGLONG nTotalProc = ftProcKernelDiff + ftProcUserDiff; 86 | 87 | if (nTotalSys > 0) 88 | { 89 | m_nCpuUsage = ((100.0 * (DOUBLE)nTotalProc) / (DOUBLE)nTotalSys) / (DOUBLE)m_nProcessors; 90 | } 91 | 92 | m_ftPrevSysIdle = ftSysIdle; 93 | m_ftPrevSysKernel = ftSysKernel; 94 | m_ftPrevSysUser = ftSysUser; 95 | m_ftPrevProcKernel = ftProcKernel; 96 | m_ftPrevProcUser = ftProcUser; 97 | 98 | m_dwLastRun = GetTickCount64(); 99 | nCpuCopy = m_nCpuUsage; 100 | } 101 | } 102 | 103 | ::InterlockedDecrement(&m_lRunCount); 104 | return nCpuCopy; 105 | } 106 | 107 | ULONGLONG CpuUsage::SubtractTimes(const FILETIME& ftA, const FILETIME& ftB) 108 | { 109 | LARGE_INTEGER a, b; 110 | a.LowPart = ftA.dwLowDateTime; 111 | a.HighPart = ftA.dwHighDateTime; 112 | b.LowPart = ftB.dwLowDateTime; 113 | b.HighPart = ftB.dwHighDateTime; 114 | return a.QuadPart - b.QuadPart; 115 | } 116 | 117 | bool CpuUsage::EnoughTimePassed() 118 | { 119 | const int minElapsedMS = 250; // milliseconds 120 | ULONGLONG dwCurrentTickCount = GetTickCount64(); 121 | return (dwCurrentTickCount - m_dwLastRun) > minElapsedMS; 122 | } 123 | 124 | // http://www.philosophicalgeek.com/2009/01/03/determine-cpu-usage-of-current-process-c-and-c/ 125 | -------------------------------------------------------------------------------- /HLinkCtrl.h: -------------------------------------------------------------------------------- 1 | /* 2 | Module : HLinkCtrl.h 3 | Purpose: Interface for a MFC class for a static text control class with hyperlink support 4 | Created: PJN / 16-06-1997 5 | 6 | Copyright (c) 1997 - 2022 by PJ Naughter (Web: www.naughter.com, Email: pjna@naughter.com) 7 | 8 | All rights reserved. 9 | 10 | Copyright / Usage Details: 11 | 12 | You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise) 13 | when your product is released in binary form. You are allowed to modify the source code in any way you want 14 | except you cannot modify the copyright details at the top of each module. If you want to distribute source 15 | code with your application, then you are only allowed to distribute versions released by the author. This is 16 | to maintain a single distribution point for the source code. 17 | 18 | */ 19 | 20 | 21 | /////////////////////////// Defines /////////////////////////////////////////// 22 | 23 | #pragma once 24 | 25 | #ifndef __HLINKCTRL_H__ 26 | #define __HLINKCTRL_H__ 27 | 28 | #ifndef HLINKCTRL_EXT_CLASS 29 | #define HLINKCTRL_EXT_CLASS 30 | #endif //#ifndef HLINKCTRL_EXT_CLASS 31 | 32 | 33 | /////////////////////////// Classes /////////////////////////////////////////// 34 | 35 | class HLINKCTRL_EXT_CLASS CHLinkCtrl : public CStatic 36 | { 37 | public: 38 | //Enums 39 | enum class TriStateSetting 40 | { 41 | YES, 42 | NO, 43 | HOVER 44 | }; 45 | 46 | //Constructors / Destructors 47 | CHLinkCtrl(); 48 | 49 | //Methods 50 | //Set or get the hyperlink to use 51 | void SetHyperLink(_In_ const CString& sLink); 52 | _NODISCARD CString GetHyperLink() const { return m_sLink; }; 53 | 54 | //Set or get the hyperlink color 55 | void SetLinkColor(_In_ const COLORREF& color); 56 | _NODISCARD COLORREF GetLinkColor() const noexcept { return m_Color; }; 57 | 58 | //Set or get the hyperlink color for visited links 59 | void SetVisitedLinkColor(_In_ const COLORREF& color); 60 | _NODISCARD COLORREF GetVisitedLinkColor() const noexcept { return m_VisitedColor; }; 61 | 62 | //Set or get the hyperlink color for highlighted links 63 | void SetHighlightLinkColor(_In_ const COLORREF& color); 64 | _NODISCARD COLORREF GetHighlightLinkColor() const noexcept { return m_HighlightColor; }; 65 | void SetUseHighlightColor(_In_ bool bUseHighlight) noexcept { m_bUseHighlight = bUseHighlight; }; 66 | 67 | //Set or get whether the hyperlink should be drawn underlined 68 | void SetUnderline(_In_ TriStateSetting underline); 69 | _NODISCARD TriStateSetting GetUnderline() const noexcept { return m_Underline; }; 70 | 71 | //Gets whether the hyperlink has been visited 72 | _NODISCARD bool GetVisited() const noexcept { return m_State == LinkState::VISITED; }; 73 | 74 | //Should tooltips be shown or not 75 | void SetToolTips(_In_ bool bToolTip); 76 | _NODISCARD bool GetToolTips() const noexcept { return m_bToolTips; }; 77 | 78 | //Set or get the ShellExecute verb to use 79 | void SetShellExecuteVerb(_In_ const CString& sVerb) { m_sShellExecuteVerb = sVerb; }; 80 | _NODISCARD CString GetShellExecuteVerb() const { return m_sShellExecuteVerb; }; 81 | 82 | //Executes the URL 83 | virtual bool Open(); 84 | 85 | //Free and cache the parent window's bitmap 86 | void FreeParentBitmap(); 87 | bool CacheParentBitmap(); 88 | 89 | protected: 90 | //Enums 91 | enum class LinkState 92 | { 93 | NOT_VISITED, 94 | VISITED, 95 | HIGHLIGHTED 96 | }; 97 | 98 | //Virtual methods 99 | COLORREF GetDefaultLinkColor(_In_z_ LPCTSTR pszSubKey, _In_z_ LPCTSTR lpszEntry, _In_ COLORREF clrDefault); 100 | bool GetDefaultLinkBoolean(_In_z_ LPCTSTR pszSubKey, _In_z_ LPCTSTR lpszEntry, _In_ bool bDefault); 101 | TriStateSetting GetDefaultLinkTriStateSetting(_In_z_ LPCTSTR pszSubKey, _In_z_ LPCTSTR lpszEntry, _In_ TriStateSetting defaultSettting); 102 | void PreSubclassWindow() override; 103 | INT_PTR OnToolHitTest(CPoint point, TOOLINFO* pTI) const override; 104 | 105 | //Message handlers 106 | afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); 107 | afx_msg void OnMouseMove(UINT nFlags, CPoint point); 108 | afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor); 109 | afx_msg BOOL OnToolTipTextA(UINT id, NMHDR* pNMHDR, LRESULT* pResult); 110 | afx_msg BOOL OnToolTipTextW(UINT id, NMHDR* pNMHDR, LRESULT* pResult); 111 | afx_msg LRESULT OnNcHitTest(CPoint point); 112 | afx_msg LRESULT OnSetText(WPARAM wParam, LPARAM lParam); 113 | afx_msg void OnEnable(BOOL bEnable); 114 | afx_msg BOOL OnEraseBkgnd(CDC* pDC); 115 | afx_msg void OnMouseLeave(); 116 | afx_msg void OnStnClicked(); 117 | 118 | //Member variables 119 | CString m_sLink; 120 | HCURSOR m_hLinkCursor; 121 | COLORREF m_Color; 122 | COLORREF m_VisitedColor; 123 | COLORREF m_HighlightColor; 124 | bool m_bUseHighlight; 125 | TriStateSetting m_Underline; 126 | LinkState m_State; 127 | LinkState m_OldState; 128 | CFont m_UnderlineFont; 129 | bool m_bToolTips; 130 | CString m_sShellExecuteVerb; 131 | bool m_bTrackLeave; 132 | CBitmap m_bmpParent; 133 | 134 | DECLARE_MESSAGE_MAP() 135 | }; 136 | 137 | #endif //#ifndef __HLINKCTRL_H__ 138 | -------------------------------------------------------------------------------- /old/DevMgr.dsp: -------------------------------------------------------------------------------- 1 | # Microsoft Developer Studio Project File - Name="DevMgr" - Package Owner=<4> 2 | # Microsoft Developer Studio Generated Build File, Format Version 6.00 3 | # ** DO NOT EDIT ** 4 | 5 | # TARGTYPE "Win32 (x86) Application" 0x0101 6 | 7 | CFG=DevMgr - Win32 Debug 8 | !MESSAGE This is not a valid makefile. To build this project using NMAKE, 9 | !MESSAGE use the Export Makefile command and run 10 | !MESSAGE 11 | !MESSAGE NMAKE /f "DevMgr.mak". 12 | !MESSAGE 13 | !MESSAGE You can specify a configuration when running NMAKE 14 | !MESSAGE by defining the macro CFG on the command line. For example: 15 | !MESSAGE 16 | !MESSAGE NMAKE /f "DevMgr.mak" CFG="DevMgr - Win32 Debug" 17 | !MESSAGE 18 | !MESSAGE Possible choices for configuration are: 19 | !MESSAGE 20 | !MESSAGE "DevMgr - Win32 Release" (based on "Win32 (x86) Application") 21 | !MESSAGE "DevMgr - Win32 Debug" (based on "Win32 (x86) Application") 22 | !MESSAGE 23 | 24 | # Begin Project 25 | # PROP AllowPerConfigDependencies 0 26 | # PROP Scc_ProjName "" 27 | # PROP Scc_LocalPath "" 28 | CPP=cl.exe 29 | MTL=midl.exe 30 | RSC=rc.exe 31 | 32 | !IF "$(CFG)" == "DevMgr - Win32 Release" 33 | 34 | # PROP BASE Use_MFC 0 35 | # PROP BASE Use_Debug_Libraries 0 36 | # PROP BASE Output_Dir "Release" 37 | # PROP BASE Intermediate_Dir "Release" 38 | # PROP BASE Target_Dir "" 39 | # PROP Use_MFC 0 40 | # PROP Use_Debug_Libraries 0 41 | # PROP Output_Dir "Release" 42 | # PROP Intermediate_Dir "Release" 43 | # PROP Target_Dir "" 44 | # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c 45 | # ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c 46 | # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 47 | # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 48 | # ADD BASE RSC /l 0x409 /d "NDEBUG" 49 | # ADD RSC /l 0x409 /d "NDEBUG" 50 | BSC32=bscmake.exe 51 | # ADD BASE BSC32 /nologo 52 | # ADD BSC32 /nologo 53 | LINK32=link.exe 54 | # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 55 | # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 56 | 57 | !ELSEIF "$(CFG)" == "DevMgr - Win32 Debug" 58 | 59 | # PROP BASE Use_MFC 0 60 | # PROP BASE Use_Debug_Libraries 1 61 | # PROP BASE Output_Dir "Debug" 62 | # PROP BASE Intermediate_Dir "Debug" 63 | # PROP BASE Target_Dir "" 64 | # PROP Use_MFC 0 65 | # PROP Use_Debug_Libraries 1 66 | # PROP Output_Dir "Debug" 67 | # PROP Intermediate_Dir "Debug" 68 | # PROP Target_Dir "" 69 | # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c 70 | # ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c 71 | # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 72 | # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 73 | # ADD BASE RSC /l 0x409 /d "_DEBUG" 74 | # ADD RSC /l 0x409 /d "_DEBUG" 75 | BSC32=bscmake.exe 76 | # ADD BASE BSC32 /nologo 77 | # ADD BSC32 /nologo 78 | LINK32=link.exe 79 | # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept 80 | # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept 81 | 82 | !ENDIF 83 | 84 | # Begin Target 85 | 86 | # Name "DevMgr - Win32 Release" 87 | # Name "DevMgr - Win32 Debug" 88 | # Begin Group "Source Files" 89 | 90 | # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" 91 | # Begin Source File 92 | 93 | SOURCE=.\DevMgr.c 94 | # End Source File 95 | # Begin Source File 96 | 97 | SOURCE=.\DevMgr.rc 98 | # End Source File 99 | # Begin Source File 100 | 101 | SOURCE=.\GetTypeInfo.c 102 | # End Source File 103 | # Begin Source File 104 | 105 | SOURCE=.\Setup.c 106 | # End Source File 107 | # Begin Source File 108 | 109 | SOURCE=.\SysSetup.c 110 | # End Source File 111 | # Begin Source File 112 | 113 | SOURCE=.\Util.c 114 | # End Source File 115 | # Begin Source File 116 | 117 | SOURCE=.\WDMSetup.c 118 | # End Source File 119 | # End Group 120 | # Begin Group "Header Files" 121 | 122 | # PROP Default_Filter "h;hpp;hxx;hm;inl" 123 | # Begin Source File 124 | 125 | SOURCE=.\DevMgr.h 126 | # End Source File 127 | # Begin Source File 128 | 129 | SOURCE=.\GetTypeInfo.h 130 | # End Source File 131 | # Begin Source File 132 | 133 | SOURCE=.\resource.h 134 | # End Source File 135 | # Begin Source File 136 | 137 | SOURCE=.\Setup.h 138 | # End Source File 139 | # Begin Source File 140 | 141 | SOURCE=.\SysSetup.h 142 | # End Source File 143 | # Begin Source File 144 | 145 | SOURCE=.\Util.h 146 | # End Source File 147 | # Begin Source File 148 | 149 | SOURCE=.\WDMSetup.h 150 | # End Source File 151 | # End Group 152 | # Begin Group "Resource Files" 153 | 154 | # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" 155 | # Begin Source File 156 | 157 | SOURCE=.\MYCOMP.BMP 158 | # End Source File 159 | # Begin Source File 160 | 161 | SOURCE=.\MYCOMP.ICO 162 | # End Source File 163 | # End Group 164 | # End Target 165 | # End Project 166 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | 2 | # Contributor Covenant Code of Conduct 3 | 4 | ## Our Pledge 5 | 6 | We as members, contributors, and leaders pledge to make participation in our 7 | community a harassment-free experience for everyone, regardless of age, body 8 | size, visible or invisible disability, ethnicity, sex characteristics, gender 9 | identity and expression, level of experience, education, socio-economic status, 10 | nationality, personal appearance, race, religion, or sexual identity 11 | and orientation. 12 | 13 | We pledge to act and interact in ways that contribute to an open, welcoming, 14 | diverse, inclusive, and healthy community. 15 | 16 | ## Our Standards 17 | 18 | Examples of behavior that contributes to a positive environment for our 19 | community include: 20 | 21 | * Demonstrating empathy and kindness toward other people 22 | * Being respectful of differing opinions, viewpoints, and experiences 23 | * Giving and gracefully accepting constructive feedback 24 | * Accepting responsibility and apologizing to those affected by our mistakes, 25 | and learning from the experience 26 | * Focusing on what is best not just for us as individuals, but for the 27 | overall community 28 | 29 | Examples of unacceptable behavior include: 30 | 31 | * The use of sexualized language or imagery, and sexual attention or 32 | advances of any kind 33 | * Trolling, insulting or derogatory comments, and personal or political attacks 34 | * Public or private harassment 35 | * Publishing others' private information, such as a physical or email 36 | address, without their explicit permission 37 | * Other conduct which could reasonably be considered inappropriate in a 38 | professional setting 39 | 40 | ## Enforcement Responsibilities 41 | 42 | Community leaders are responsible for clarifying and enforcing our standards of 43 | acceptable behavior and will take appropriate and fair corrective action in 44 | response to any behavior that they deem inappropriate, threatening, offensive, 45 | or harmful. 46 | 47 | Community leaders have the right and responsibility to remove, edit, or reject 48 | comments, commits, code, wiki edits, issues, and other contributions that are 49 | not aligned to this Code of Conduct, and will communicate reasons for moderation 50 | decisions when appropriate. 51 | 52 | ## Scope 53 | 54 | This Code of Conduct applies within all community spaces, and also applies when 55 | an individual is officially representing the community in public spaces. 56 | Examples of representing our community include using an official e-mail address, 57 | posting via an official social media account, or acting as an appointed 58 | representative at an online or offline event. 59 | 60 | ## Enforcement 61 | 62 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 63 | reported to the community leaders responsible for enforcement at 64 | [stefan-mihai@moga.doctor](mailto:stefan-mihai@moga.doctor). 65 | All complaints will be reviewed and investigated promptly and fairly. 66 | 67 | All community leaders are obligated to respect the privacy and security of the 68 | reporter of any incident. 69 | 70 | ## Enforcement Guidelines 71 | 72 | Community leaders will follow these Community Impact Guidelines in determining 73 | the consequences for any action they deem in violation of this Code of Conduct: 74 | 75 | ### 1. Correction 76 | 77 | **Community Impact**: Use of inappropriate language or other behavior deemed 78 | unprofessional or unwelcome in the community. 79 | 80 | **Consequence**: A private, written warning from community leaders, providing 81 | clarity around the nature of the violation and an explanation of why the 82 | behavior was inappropriate. A public apology may be requested. 83 | 84 | ### 2. Warning 85 | 86 | **Community Impact**: A violation through a single incident or series 87 | of actions. 88 | 89 | **Consequence**: A warning with consequences for continued behavior. No 90 | interaction with the people involved, including unsolicited interaction with 91 | those enforcing the Code of Conduct, for a specified period of time. This 92 | includes avoiding interactions in community spaces as well as external channels 93 | like social media. Violating these terms may lead to a temporary or 94 | permanent ban. 95 | 96 | ### 3. Temporary Ban 97 | 98 | **Community Impact**: A serious violation of community standards, including 99 | sustained inappropriate behavior. 100 | 101 | **Consequence**: A temporary ban from any sort of interaction or public 102 | communication with the community for a specified period of time. No public or 103 | private interaction with the people involved, including unsolicited interaction 104 | with those enforcing the Code of Conduct, is allowed during this period. 105 | Violating these terms may lead to a permanent ban. 106 | 107 | ### 4. Permanent Ban 108 | 109 | **Community Impact**: Demonstrating a pattern of violation of community 110 | standards, including sustained inappropriate behavior, harassment of an 111 | individual, or aggression toward or disparagement of classes of individuals. 112 | 113 | **Consequence**: A permanent ban from any sort of public interaction within 114 | the community. 115 | 116 | ## Attribution 117 | 118 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 119 | version 2.0, available at 120 | [https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0]. 121 | 122 | Community Impact Guidelines were inspired by 123 | [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. 124 | 125 | For answers to common questions about this code of conduct, see the FAQ at 126 | [https://www.contributor-covenant.org/faq][FAQ]. Translations are available 127 | at [https://www.contributor-covenant.org/translations][translations]. 128 | 129 | [homepage]: https://www.contributor-covenant.org 130 | [v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html 131 | [Mozilla CoC]: https://github.com/mozilla/diversity 132 | [FAQ]: https://www.contributor-covenant.org/faq 133 | [translations]: https://www.contributor-covenant.org/translations 134 | 135 | -------------------------------------------------------------------------------- /old/DevMgr.rc: -------------------------------------------------------------------------------- 1 | //Microsoft Developer Studio generated resource script. 2 | // 3 | #include "resource.h" 4 | 5 | #define APSTUDIO_READONLY_SYMBOLS 6 | ///////////////////////////////////////////////////////////////////////////// 7 | // 8 | // Generated from the TEXTINCLUDE 2 resource. 9 | // 10 | #include "afxres.h" 11 | 12 | ///////////////////////////////////////////////////////////////////////////// 13 | #undef APSTUDIO_READONLY_SYMBOLS 14 | 15 | ///////////////////////////////////////////////////////////////////////////// 16 | // English (U.S.) resources 17 | 18 | #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) 19 | #ifdef _WIN32 20 | LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US 21 | #pragma code_page(1252) 22 | #endif //_WIN32 23 | 24 | ///////////////////////////////////////////////////////////////////////////// 25 | // 26 | // Dialog 27 | // 28 | 29 | IDD_DIALOG1 DIALOG DISCARDABLE 0, 0, 429, 310 30 | STYLE DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | 31 | WS_SYSMENU 32 | CAPTION "Driver Install Tool" 33 | FONT 8, "MS Sans Serif" 34 | BEGIN 35 | CONTROL "Manual Setting(Do not use INF file)",IDC_RADIO1,"Button", 36 | BS_AUTORADIOBUTTON | WS_GROUP,69,281,136,8 37 | CONTROL "Use INF file",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON, 38 | 225,281,64,8 39 | PUSHBUTTON "Add",IDC_ADDBTN,7,294,42,9,BS_FLAT 40 | PUSHBUTTON "Delete",IDC_DELBTN,76,294,42,9,BS_FLAT 41 | PUSHBUTTON "Refresh",IDC_REFBTN,155,294,42,9,BS_FLAT 42 | PUSHBUTTON "Exit",IDC_EXIT,380,294,42,9,BS_FLAT 43 | CONTROL "Tree1",IDC_TREE1,"SysTreeView32",TVS_HASBUTTONS | 44 | TVS_HASLINES | TVS_DISABLEDRAGDROP | TVS_FULLROWSELECT | 45 | WS_BORDER | WS_TABSTOP,7,7,112,271 46 | CONTROL "List1",IDC_LIST1,"SysListView32",LVS_REPORT | 47 | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | 48 | WS_TABSTOP,122,7,300,203 49 | CONTROL "List2",IDC_LIST2,"SysListView32",LVS_REPORT | WS_BORDER | 50 | WS_TABSTOP,122,212,300,66 51 | PUSHBUTTON "Copy Path",IDC_COPYPATHBTN,309,294,42,9,BS_FLAT 52 | PUSHBUTTON "Disable",IDC_DISABLEBTN,235,294,42,9,BS_FLAT 53 | END 54 | 55 | IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 238, 191 56 | STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU 57 | CAPTION "Dialog" 58 | FONT 8, "MS Sans Serif" 59 | BEGIN 60 | PUSHBUTTON "...",IDC_OPENINFBTN,216,7,15,14,BS_FLAT 61 | CONTROL "CRITICAL ERROR",IDC_PARAMOPT1,"Button", 62 | BS_AUTORADIOBUTTON | BS_FLAT | WS_GROUP,19,51,86,8 63 | CONTROL "IGNORE ERROR",IDC_PARAMOPT2,"Button",BS_AUTORADIOBUTTON | 64 | BS_FLAT,19,74,84,8 65 | CONTROL "NORMAL ERROR",IDC_PARAMOPT3,"Button",BS_AUTORADIOBUTTON | 66 | BS_FLAT,19,101,86,8 67 | CONTROL "SEVERE ERROR",IDC_PARAMOPT4,"Button",BS_AUTORADIOBUTTON | 68 | BS_FLAT,19,129,88,10 69 | CONTROL "BOOT START",IDC_PARAMOPT5,"Button",BS_AUTORADIOBUTTON | 70 | BS_FLAT | WS_GROUP,131,51,86,8 71 | CONTROL "SYSTEM START",IDC_PARAMOPT6,"Button",BS_AUTORADIOBUTTON | 72 | BS_FLAT,131,70,88,8 73 | CONTROL "AUTO START",IDC_PARAMOPT7,"Button",BS_AUTORADIOBUTTON | 74 | BS_FLAT,131,89,88,8 75 | CONTROL "DEMAND START",IDC_PARAMOPT8,"Button",BS_AUTORADIOBUTTON | 76 | BS_FLAT,131,108,88,8 77 | CONTROL "DISABLED",IDC_PARAMOPT9,"Button",BS_AUTORADIOBUTTON | 78 | BS_FLAT,131,129,88,8 79 | EDITTEXT IDC_DRVNAMETXT,58,152,166,12,ES_AUTOHSCROLL 80 | PUSHBUTTON "Install",IDC_INSTALLBTN,7,170,50,14,BS_FLAT 81 | PUSHBUTTON "Reset",IDC_RESETBTN,93,170,50,14,BS_FLAT 82 | PUSHBUTTON "Exit",IDC_IEXIT,181,170,50,14,BS_FLAT 83 | LTEXT "INF File:",IDC_STATIC,7,7,32,9 84 | LTEXT "",IDC_INFLBL,41,7,173,14,WS_BORDER 85 | GROUPBOX "Parameter Setting",IDC_STATIC,7,25,224,143,BS_FLAT 86 | GROUPBOX "Error Control",IDC_STATIC,13,34,100,116 87 | GROUPBOX "Start Type",IDC_STATIC,125,34,100,116 88 | LTEXT "Driver Name:",IDC_STATIC,13,155,44,11 89 | END 90 | 91 | 92 | ///////////////////////////////////////////////////////////////////////////// 93 | // 94 | // DESIGNINFO 95 | // 96 | 97 | #ifdef APSTUDIO_INVOKED 98 | GUIDELINES DESIGNINFO DISCARDABLE 99 | BEGIN 100 | IDD_DIALOG1, DIALOG 101 | BEGIN 102 | LEFTMARGIN, 7 103 | RIGHTMARGIN, 422 104 | TOPMARGIN, 7 105 | BOTTOMMARGIN, 303 106 | END 107 | 108 | IDD_DIALOG2, DIALOG 109 | BEGIN 110 | LEFTMARGIN, 7 111 | RIGHTMARGIN, 231 112 | TOPMARGIN, 7 113 | BOTTOMMARGIN, 184 114 | END 115 | END 116 | #endif // APSTUDIO_INVOKED 117 | 118 | 119 | #ifdef APSTUDIO_INVOKED 120 | ///////////////////////////////////////////////////////////////////////////// 121 | // 122 | // TEXTINCLUDE 123 | // 124 | 125 | 1 TEXTINCLUDE DISCARDABLE 126 | BEGIN 127 | "resource.h\0" 128 | END 129 | 130 | 2 TEXTINCLUDE DISCARDABLE 131 | BEGIN 132 | "#include ""afxres.h""\r\n" 133 | "\0" 134 | END 135 | 136 | 3 TEXTINCLUDE DISCARDABLE 137 | BEGIN 138 | "\r\n" 139 | "\0" 140 | END 141 | 142 | #endif // APSTUDIO_INVOKED 143 | 144 | 145 | ///////////////////////////////////////////////////////////////////////////// 146 | // 147 | // Bitmap 148 | // 149 | 150 | IDB_MYCOMP BITMAP DISCARDABLE "MYCOMP.BMP" 151 | #endif // English (U.S.) resources 152 | ///////////////////////////////////////////////////////////////////////////// 153 | 154 | 155 | 156 | #ifndef APSTUDIO_INVOKED 157 | ///////////////////////////////////////////////////////////////////////////// 158 | // 159 | // Generated from the TEXTINCLUDE 3 resource. 160 | // 161 | 162 | 163 | ///////////////////////////////////////////////////////////////////////////// 164 | #endif // not APSTUDIO_INVOKED 165 | 166 | -------------------------------------------------------------------------------- /SortListCtrl.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | // SortListCtrl.cpp : implementation file 17 | // 18 | 19 | #include "stdafx.h" 20 | #include "IntelliTask.h" 21 | #include "SortListCtrl.h" 22 | 23 | // CSortListCtrl 24 | 25 | IMPLEMENT_DYNAMIC(CSortListCtrl, CMFCListCtrl) 26 | 27 | CSortListCtrl::CSortListCtrl() 28 | { 29 | m_pSystemSnapshot = nullptr; 30 | } 31 | 32 | CSortListCtrl::~CSortListCtrl() 33 | { 34 | } 35 | 36 | BEGIN_MESSAGE_MAP(CSortListCtrl, CMFCListCtrl) 37 | END_MESSAGE_MAP() 38 | 39 | // CSortListCtrl message handlers 40 | 41 | int CSortListCtrl::OnCompareItems(LPARAM lParam1, LPARAM lParam2, int iColumn) 42 | { 43 | if ((-1 == iColumn) || (1 == iColumn)) 44 | { 45 | if (m_pSystemSnapshot != nullptr) 46 | { 47 | CProcessData* pParam1 = m_pSystemSnapshot->GetProcessID((DWORD)lParam1); 48 | CProcessData* pParam2 = m_pSystemSnapshot->GetProcessID((DWORD)lParam2); 49 | if ((pParam1 != nullptr) && (pParam2 != nullptr)) 50 | { 51 | CString strFileName1 = pParam1->GetFileName(); 52 | CString strFileName2 = pParam2->GetFileName(); 53 | const int nRetVal = strFileName1.CompareNoCase(strFileName2); 54 | if (nRetVal == 0) 55 | { 56 | return (pParam1->GetProcessID() - pParam2->GetProcessID()); 57 | } 58 | else 59 | { 60 | return nRetVal; 61 | } 62 | } 63 | } 64 | } 65 | else 66 | { 67 | if (0 == iColumn) 68 | { 69 | if (m_pSystemSnapshot != nullptr) 70 | { 71 | CProcessData* pParam1 = m_pSystemSnapshot->GetProcessID((DWORD)lParam1); 72 | CProcessData* pParam2 = m_pSystemSnapshot->GetProcessID((DWORD)lParam2); 73 | if ((pParam1 != nullptr) && (pParam2 != nullptr)) 74 | { 75 | return (pParam1->GetProcessID() - pParam2->GetProcessID()); 76 | } 77 | } 78 | } 79 | else 80 | { 81 | if (2 == iColumn) 82 | { 83 | if (m_pSystemSnapshot != nullptr) 84 | { 85 | CProcessData* pParam1 = m_pSystemSnapshot->GetProcessID((DWORD)lParam1); 86 | CProcessData* pParam2 = m_pSystemSnapshot->GetProcessID((DWORD)lParam2); 87 | if ((pParam1 != nullptr) && (pParam2 != nullptr)) 88 | { 89 | // return (int)(pParam1->GetProcessorUsage() - pParam2->GetProcessorUsage()); 90 | return (pParam1->GetProcessorUsage() < pParam2->GetProcessorUsage()) ? -1 : 1; 91 | } 92 | } 93 | } 94 | else 95 | { 96 | if (3 == iColumn) 97 | { 98 | if (m_pSystemSnapshot != nullptr) 99 | { 100 | CProcessData* pParam1 = m_pSystemSnapshot->GetProcessID((DWORD)lParam1); 101 | CProcessData* pParam2 = m_pSystemSnapshot->GetProcessID((DWORD)lParam2); 102 | if ((pParam1 != nullptr) && (pParam2 != nullptr)) 103 | { 104 | return (pParam1->GetMemoryUsage() - pParam2->GetMemoryUsage()); 105 | } 106 | } 107 | } 108 | else 109 | { 110 | if (4 == iColumn) 111 | { 112 | if (m_pSystemSnapshot != nullptr) 113 | { 114 | CProcessData* pParam1 = m_pSystemSnapshot->GetProcessID((DWORD)lParam1); 115 | CProcessData* pParam2 = m_pSystemSnapshot->GetProcessID((DWORD)lParam2); 116 | if ((pParam1 != nullptr) && (pParam2 != nullptr)) 117 | { 118 | CString strDescription1 = pParam1->GetDescription(); 119 | CString strDescription2 = pParam2->GetDescription(); 120 | const int nRetVal = strDescription1.CompareNoCase(strDescription2); 121 | if (nRetVal == 0) 122 | { 123 | return (pParam1->GetProcessID() - pParam2->GetProcessID()); 124 | } 125 | else 126 | { 127 | return nRetVal; 128 | } 129 | } 130 | } 131 | } 132 | else 133 | { 134 | if (5 == iColumn) 135 | { 136 | if (m_pSystemSnapshot != nullptr) 137 | { 138 | CProcessData* pParam1 = m_pSystemSnapshot->GetProcessID((DWORD)lParam1); 139 | CProcessData* pParam2 = m_pSystemSnapshot->GetProcessID((DWORD)lParam2); 140 | if ((pParam1 != nullptr) && (pParam2 != nullptr)) 141 | { 142 | CString strCompany1 = pParam1->GetCompany(); 143 | CString strCompany2 = pParam2->GetCompany(); 144 | const int nRetVal = strCompany1.CompareNoCase(strCompany2); 145 | if (nRetVal == 0) 146 | { 147 | return (pParam1->GetProcessID() - pParam2->GetProcessID()); 148 | } 149 | else 150 | { 151 | return nRetVal; 152 | } 153 | } 154 | } 155 | } 156 | else 157 | { 158 | if (6 == iColumn) 159 | { 160 | if (m_pSystemSnapshot != nullptr) 161 | { 162 | CProcessData* pParam1 = m_pSystemSnapshot->GetProcessID((DWORD)lParam1); 163 | CProcessData* pParam2 = m_pSystemSnapshot->GetProcessID((DWORD)lParam2); 164 | if ((pParam1 != nullptr) && (pParam2 != nullptr)) 165 | { 166 | CString strVersion1 = pParam1->GetVersion(); 167 | CString strVersion2 = pParam2->GetVersion(); 168 | const int nRetVal = strVersion1.CompareNoCase(strVersion2); 169 | if (nRetVal == 0) 170 | { 171 | return (pParam1->GetProcessID() - pParam2->GetProcessID()); 172 | } 173 | else 174 | { 175 | return nRetVal; 176 | } 177 | } 178 | } 179 | } 180 | } 181 | } 182 | } 183 | } 184 | } 185 | } 186 | return 0; 187 | } 188 | -------------------------------------------------------------------------------- /ReadMe.txt: -------------------------------------------------------------------------------- 1 | ================================================================================ 2 | MICROSOFT FOUNDATION CLASS LIBRARY : IntelliTask Project Overview 3 | =============================================================================== 4 | 5 | The application wizard has created this IntelliTask application for 6 | you. This application not only demonstrates the basics of using the Microsoft 7 | Foundation Classes but is also a starting point for writing your application. 8 | 9 | This file contains a summary of what you will find in each of the files that 10 | make up your IntelliTask application. 11 | 12 | IntelliTask.vcxproj 13 | This is the main project file for VC++ projects generated using an application wizard. 14 | It contains information about the version of Visual C++ that generated the file, and 15 | information about the platforms, configurations, and project features selected with the 16 | application wizard. 17 | 18 | IntelliTask.vcxproj.filters 19 | This is the filters file for VC++ projects generated using an Application Wizard. 20 | It contains information about the association between the files in your project 21 | and the filters. This association is used in the IDE to show grouping of files with 22 | similar extensions under a specific node (for e.g. ".cpp" files are associated with the 23 | "Source Files" filter). 24 | 25 | IntelliTask.h 26 | This is the main header file for the application. It includes other 27 | project specific headers (including Resource.h) and declares the 28 | CIntelliTaskApp application class. 29 | 30 | IntelliTask.cpp 31 | This is the main application source file that contains the application 32 | class CIntelliTaskApp. 33 | 34 | IntelliTask.rc 35 | This is a listing of all of the Microsoft Windows resources that the 36 | program uses. It includes the icons, bitmaps, and cursors that are stored 37 | in the RES subdirectory. This file can be directly edited in Microsoft 38 | Visual C++. Your project resources are in 1033. 39 | 40 | res\IntelliTask.ico 41 | This is an icon file, which is used as the application's icon. This 42 | icon is included by the main resource file IntelliTask.rc. 43 | 44 | res\IntelliTask.rc2 45 | This file contains resources that are not edited by Microsoft 46 | Visual C++. You should place all resources not editable by 47 | the resource editor in this file. 48 | 49 | ///////////////////////////////////////////////////////////////////////////// 50 | 51 | For the main frame window: 52 | The project includes a standard MFC interface. 53 | 54 | MainFrame.h, MainFrame.cpp 55 | These files contain the frame class CMainFrame, which is derived from 56 | CFrameWnd and controls all SDI frame features. 57 | 58 | res\Toolbar.bmp 59 | This bitmap file is used to create tiled images for the toolbar. 60 | The initial toolbar and status bar are constructed in the CMainFrame 61 | class. Edit this toolbar bitmap using the resource editor, and 62 | update the IDR_MAINFRAME TOOLBAR array in IntelliTask.rc to add 63 | toolbar buttons. 64 | ///////////////////////////////////////////////////////////////////////////// 65 | 66 | 67 | 68 | ///////////////////////////////////////////////////////////////////////////// 69 | 70 | Help Support: 71 | 72 | hlp\IntelliTask.hhp 73 | This file is a help project file. It contains the data needed to 74 | compile the help files into a .chm file. 75 | 76 | hlp\IntelliTask.hhc 77 | This file lists the contents of the help project. 78 | 79 | hlp\IntelliTask.hhk 80 | This file contains an index of the help topics. 81 | 82 | hlp\afxcore.htm 83 | This file contains the standard help topics for standard MFC 84 | commands and screen objects. Add your own help topics to this file. 85 | 86 | makehtmlhelp.bat 87 | This file is used by the build system to compile the help files. 88 | 89 | hlp\Images\*.gif 90 | These are bitmap files required by the standard help file topics for 91 | Microsoft Foundation Class Library standard commands. 92 | 93 | 94 | ///////////////////////////////////////////////////////////////////////////// 95 | 96 | Other Features: 97 | 98 | ActiveX Controls 99 | The application includes support to use ActiveX controls. 100 | 101 | Database support 102 | The application wizard has added the basic level of database support for your program. 103 | Only the needed files have been included. 104 | 105 | Windows Sockets 106 | The application has support for establishing communications over TCP/IP networks. 107 | 108 | ///////////////////////////////////////////////////////////////////////////// 109 | 110 | Other standard files: 111 | 112 | StdAfx.h, StdAfx.cpp 113 | These files are used to build a precompiled header (PCH) file 114 | named IntelliTask.pch and a precompiled types file named StdAfx.obj. 115 | 116 | Resource.h 117 | This is the standard header file, which defines new resource IDs. 118 | Microsoft Visual C++ reads and updates this file. 119 | 120 | IntelliTask.manifest 121 | Application manifest files are used by Windows XP to describe an applications 122 | dependency on specific versions of Side-by-Side assemblies. The loader uses this 123 | information to load the appropriate assembly from the assembly cache or private 124 | from the application. The Application manifest maybe included for redistribution 125 | as an external .manifest file that is installed in the same folder as the application 126 | executable or it may be included in the executable in the form of a resource. 127 | ///////////////////////////////////////////////////////////////////////////// 128 | 129 | Other notes: 130 | 131 | The application wizard uses "TODO:" to indicate parts of the source code you 132 | should add to or customize. 133 | 134 | If your application uses MFC in a shared DLL, you will need 135 | to redistribute the MFC DLLs. If your application is in a language 136 | other than the operating system's locale, you will also have to 137 | redistribute the corresponding localized resources MFC100XXX.DLL. 138 | For more information on both of these topics, please see the section on 139 | redistributing Visual C++ applications in MSDN documentation. 140 | 141 | ///////////////////////////////////////////////////////////////////////////// 142 | -------------------------------------------------------------------------------- /SoftwareContentRegister.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IntelliTask - Software Content Register 6 | 7 | 8 | 9 | 10 | 11 | 12 | 36 | 37 |
38 |
39 |
40 |

Software Content Register

41 |

Release Name: IntelliTask
42 | Description: IntelliTask is an alternative Windows version to the famous Microsoft Task Manager!
43 | Outgoing License: GNU General Public License v3.0
44 | Type of content: static/dynamic libraries, source code, binary

45 | 46 |

genUp4win
47 | Desciption: This library is a generic updater for Windows.
48 | Version: 2.09
49 | Home Page: https://github.com/mihaimoga/genUp4win
50 | License: MIT
51 | Format: source code, binary

52 | 53 |

CHLinkCtrl
54 | Description: This class allows you to create a static control on a window or dialog which behaves similar to a hyperlink as seen on a web page. When the mouse moves over the text the cursor becomes a hand and when you click on the text the hyperlink is executed.
55 | Version: 1.43
56 | Home Page: https://www.naughter.com/hlinkctrl.html
57 | License: Custom (PJ Naughter's license)
58 | Format: source code, binary

59 | 60 |

CInstanceChecker
61 | Description: This class implements single instance apps. Limiting your app to single instance is more tricky in Win32 with the removal of the hPrevInstance parameter from WinMain and the introduction of separate address spaces.
62 | Version: 1.25
63 | Home Page: https://www.naughter.com/sinstance.html
64 | License: Custom (PJ Naughter's license)
65 | Format: source code, binary

66 | 67 |

CVersionInfo
68 | Description: This simple little class encapsulates the SDK calls which access version info from Win32 files. Most executables and DLL's have a VS_VERSION_INFO resource associated with them and this class provides a simple C++ class to programmatically access this information.
69 | Version: 1.13
70 | Home Page: https://www.naughter.com/versioninfo.html
71 | License: Custom (PJ Naughter's license)
72 | Format: source code, binary

73 | 74 |

DtWinVer
75 | Description: DtWinVer is a C++ class which provides a comprehensive method to determine which OS the program that calls it is running on. The routine provides the emulated OS as well as the underlying OS. e.g to a DOS program Windows 95 looks like MS-DOS 7.0.
76 | Version: 2.72
77 | Home Page: https://www.naughter.com/dtwinver.html
78 | License: Custom (PJ Naughter's license)
79 | Format: source code, binary

80 | 81 |

CWndResizer
82 | Description: Gives you total control when it comes to resizing windows.
83 | Version: unspecified
84 | Home Page: https://www.codeproject.com/articles/MFC-C-Helper-Class-for-Window-Resizing
85 | License: Code Project Open License
86 | Format: source code, binary

87 | 88 |

PJ Naughter's license: You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise) when your product is released in binary form. You are allowed to modify the source code in any way you want except you cannot modify the copyright details at the top of each module. If you want to distribute source code with your application, then you are only allowed to distribute versions released by the author. This is to maintain a single distribution point for the source code.

89 |
90 |
91 |
92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /ProcessList.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2012-2026 Stefan-Mihai MOGA 2 | This file is part of IntelliTask application developed by Stefan-Mihai MOGA. 3 | IntelliTask is an alternative Windows version to the famous Task Manager! 4 | 5 | IntelliTask is free software: you can redistribute it and/or modify it 6 | under the terms of the GNU General Public License as published by the Open 7 | Source Initiative, either version 3 of the License, or any later version. 8 | 9 | IntelliTask is distributed in the hope that it will be useful, but 10 | WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 | or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along with 14 | IntelliTask. If not, see */ 15 | 16 | #include "stdafx.h" 17 | #include "IntelliTask.h" 18 | #include "ProcessList.h" 19 | #include "VersionInfo.h" 20 | 21 | IMPLEMENT_DYNAMIC(CProcessData, CObject) 22 | 23 | IMPLEMENT_DYNAMIC(CSystemSnapshot, CObject) 24 | 25 | /////////////////////////////////////////////////////////////////////////////// 26 | // CProcessData member functions 27 | /////////////////////////////////////////////////////////////////////////////// 28 | 29 | CProcessData::CProcessData() 30 | { 31 | m_dwProcessID = 0; 32 | m_dwParentProcessID = 0; 33 | m_dwPriority = 0; 34 | m_cpuUsage = 0; 35 | m_memUsage = 0; 36 | } 37 | 38 | CProcessData::CProcessData(DWORD dwProcessID, DWORD dwParentProcessID, DWORD dwPriority, DOUBLE cpuUsage, DWORD memUsage, 39 | CString strFileName, CString strFilePath, CString strDescription, CString strCompany, CString strVersion) 40 | { 41 | m_dwProcessID = dwProcessID; 42 | m_dwParentProcessID = dwParentProcessID; 43 | m_dwPriority = dwPriority; 44 | m_cpuUsage = cpuUsage; 45 | m_memUsage = memUsage; 46 | m_strFileName = strFileName; 47 | m_strFilePath = strFilePath; 48 | m_strDescription = strDescription; 49 | m_strCompany = strCompany; 50 | m_strVersion = strVersion; 51 | } 52 | 53 | CProcessData::~CProcessData() 54 | { 55 | } 56 | 57 | /////////////////////////////////////////////////////////////////////////////// 58 | // CSystemSnapshot member functions 59 | /////////////////////////////////////////////////////////////////////////////// 60 | 61 | CSystemSnapshot::CSystemSnapshot() 62 | { 63 | } 64 | 65 | CSystemSnapshot::~CSystemSnapshot() 66 | { 67 | VERIFY(RemoveAll()); 68 | } 69 | 70 | bool CSystemSnapshot::RemoveAll() 71 | { 72 | const int nSize = (int)m_arrProcessList.GetSize(); 73 | for (int nIndex = 0; nIndex < nSize; nIndex++) 74 | { 75 | CProcessData* pProcessData = m_arrProcessList.GetAt(nIndex); 76 | ASSERT(pProcessData != nullptr); 77 | delete pProcessData; 78 | pProcessData = nullptr; 79 | } 80 | m_arrProcessList.RemoveAll(); 81 | return true; 82 | } 83 | 84 | bool CSystemSnapshot::Refresh() 85 | { 86 | HANDLE hSnapshot = nullptr; 87 | PROCESSENTRY32 pe32 = { 0 }; 88 | 89 | VERIFY(RemoveAll()); 90 | if ((hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)) != INVALID_HANDLE_VALUE) 91 | { 92 | pe32.dwSize = sizeof(PROCESSENTRY32); 93 | if (!Process32First(hSnapshot, &pe32)) 94 | { 95 | return false; 96 | } 97 | 98 | do 99 | { 100 | VERIFY(InsertProcess(pe32)); 101 | } while (Process32Next(hSnapshot, &pe32)); 102 | 103 | VERIFY(CloseHandle(hSnapshot)); 104 | } 105 | else 106 | { 107 | return false; 108 | } 109 | return true; 110 | } 111 | 112 | CProcessData* CSystemSnapshot::InsertProcess(PROCESSENTRY32& pe32) 113 | { 114 | HANDLE hProcess = nullptr; 115 | PROCESS_MEMORY_COUNTERS pmc = { 0 }; 116 | pmc.cb = sizeof(PROCESS_MEMORY_COUNTERS); 117 | 118 | CProcessData* pProcessData = new CProcessData(); 119 | m_arrProcessList.Add(pProcessData); 120 | pProcessData->SetProcessID(pe32.th32ProcessID); 121 | pProcessData->SetParentProcessID(pe32.th32ParentProcessID); 122 | pProcessData->SetFileName(pe32.szExeFile); 123 | 124 | if ((hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, false, pe32.th32ProcessID)) != nullptr) 125 | { 126 | pProcessData->m_pCpuUsage.SetProcessID(pe32.th32ProcessID); 127 | pProcessData->SetProcessorUsage(pProcessData->m_pCpuUsage.GetUsage()); 128 | if (GetProcessMemoryInfo(hProcess, &pmc, pmc.cb)) 129 | { 130 | pProcessData->SetMemoryUsage((DWORD)pmc.WorkingSetSize); 131 | } 132 | 133 | TCHAR lpszFullPath[MAX_PATH] = { 0 }; 134 | if (GetModuleFileNameEx(hProcess, nullptr, lpszFullPath, MAX_PATH)) 135 | { 136 | pProcessData->SetFilePath(lpszFullPath); 137 | CVersionInfo pVersionInfo; 138 | if (pVersionInfo.Load(lpszFullPath)) 139 | { 140 | pProcessData->SetDescription(pVersionInfo.GetFileDescription().c_str()); 141 | pProcessData->SetCompany(pVersionInfo.GetCompanyName().c_str()); 142 | pProcessData->SetVersion(pVersionInfo.GetFileVersionAsString().c_str()); 143 | } 144 | } 145 | VERIFY(CloseHandle(hProcess)); 146 | } 147 | return pProcessData; 148 | } 149 | 150 | CProcessData* CSystemSnapshot::UpdateProcess(DWORD dwProcessID) 151 | { 152 | HANDLE hProcess = nullptr; 153 | PROCESS_MEMORY_COUNTERS pmc = { 0 }; 154 | pmc.cb = sizeof(PROCESS_MEMORY_COUNTERS); 155 | 156 | CProcessData* pProcessData = GetProcessID(dwProcessID); 157 | if (pProcessData != nullptr) 158 | { 159 | if ((hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, false, dwProcessID)) != nullptr) 160 | { 161 | pProcessData->SetProcessorUsage(pProcessData->m_pCpuUsage.GetUsage()); 162 | if (GetProcessMemoryInfo(hProcess, &pmc, pmc.cb)) 163 | { 164 | pProcessData->SetMemoryUsage((DWORD)pmc.WorkingSetSize); 165 | } 166 | VERIFY(CloseHandle(hProcess)); 167 | } 168 | return pProcessData; 169 | } 170 | return nullptr; 171 | } 172 | 173 | bool CSystemSnapshot::RemoveProcess(DWORD dwProcessID) 174 | { 175 | const int nSize = (int)m_arrProcessList.GetSize(); 176 | for (int nIndex = 0; nIndex < nSize; nIndex++) 177 | { 178 | CProcessData* pProcessData = m_arrProcessList.GetAt(nIndex); 179 | ASSERT(pProcessData != nullptr); 180 | if (pProcessData->GetProcessID() == dwProcessID) 181 | { 182 | delete pProcessData; 183 | pProcessData = nullptr; 184 | m_arrProcessList.RemoveAt(nIndex); 185 | return true; 186 | } 187 | } 188 | return false; 189 | } 190 | 191 | CProcessData* CSystemSnapshot::GetProcessID(DWORD dwProcessID) 192 | { 193 | const int nSize = (int)m_arrProcessList.GetSize(); 194 | for (int nIndex = 0; nIndex < nSize; nIndex++) 195 | { 196 | CProcessData* pProcessData = m_arrProcessList.GetAt(nIndex); 197 | ASSERT(pProcessData != nullptr); 198 | if (pProcessData->GetProcessID() == dwProcessID) 199 | { 200 | return pProcessData; 201 | } 202 | } 203 | return nullptr; 204 | } 205 | -------------------------------------------------------------------------------- /IntelliTask.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IntelliTask - Help 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 37 | 38 |
39 |
40 |
41 |

IntelliTask

42 |

IntelliTask

43 | 44 |

Introduction

45 |

IntelliTask is a free (as in “free speech” and also as in “free beer”) process/service manager. Running in the Microsoft Windows environment, its use is governed by GNU General Public License v3.0. IntelliTask is written in C++ and uses pure Win32 API and STL which ensures a higher execution speed and smaller program size. By optimizing as many routines as possible without losing user friendliness, IntelliTask is trying to reduce the world carbon dioxide emissions. When using less CPU power, the PC can throttle down and reduce power consumption, resulting in a greener environment. I hope you enjoy IntelliTask as much as I enjoy coding it!

46 | 47 |

IntelliTask provides information about processes and services running on your computer. It also displays the most commonly used performance measures for processes. You can use IntelliTask to monitor key indicators of your computer’s performance. You can see the status of the programs that are running and end programs that have stopped responding. You can also assess the activity of running processes using as many as fifteen parameters, and see graphs and data on CPU and memory usage. In addition, if you are connected to a network, you can view network status and see how your network is functioning.

48 | 49 |

Getting started

50 |

Install IntelliTask using the installer

51 |
    52 |
  • Download the installer
  • 53 |
  • Run the executable binary and follow the installation flow
  • 54 |
55 |

The installer will likely require Administrative privileges in order to install IntelliTask (and later, to update IntelliTask or install or update plugins, or anything else that requires writing to the installation directory). If you do not have Administrative privileges, you either need to tell the installer to use a location where you do have write permission (though that may still ask for Administrator privileges), or you may choose not use the installer and instead run a portable edition from a directory where you have write permission.

56 |

Install IntelliTask from zip

57 |

These instructions will allow you to run a portable or mini-portable (also called “minimalist”), without requiring administrative privileges.

58 |
    59 |
  • Create a new folder somewhere that you have write-permission
  • 60 |
  • Unzip the content into the new folder
  • 61 |
  • Run IntelliTask from the new folder
  • 62 |
63 |

The portable zip edition of IntelliTask can be removed by deleting the directory they came in. If you manually set up file associations or context-menu entries in the OS, it is your responsibility to remove them yourself.

64 | 65 |

Application's menu

66 |

The IntelliTask menu features the application's most important functions:

67 |
    68 |
  • Properties: Shows file properties.
  • 69 |
  • Kill process: Kills selectedd process.
  • 70 |
  • Device Manager: Shows local computer devices.
  • 71 |
  • Installed Programs: Shows computer installed programs.
  • 72 |
73 | 74 |

Create and Submit your Pull Request

75 |

As noted in the Contributing Rules for IntelliTask, all Pull Requests need to be attached to a issue on GitHub. So the first step is to create an issue which requests that the functionality be improved (if it was already there) or added (if it was not yet there); in your issue, be sure to explain that you have the functionality definition ready, and will be submitting a Pull Request. The second step is to use the GitHub interface to create the Pull Request from your fork into the main repository. The final step is to wait for and respond to feedback from the developers as needed, until such time as your PR is accepted or rejected.

76 |
77 |
78 |
79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /res/ribbon.mfcribbon-ms: -------------------------------------------------------------------------------- 1 |
1
RibbonBarTRUETRUETRUETRUEFALSEIDB_BUTTONS113Button_MainFFALSEFALSE-1-1TRUEIDB_MAIN112Category_MainFileButton_Main_PanelID_APP_EXIT57665E&xitFALSEFALSE10-1TRUETRUE300QATTRUEID_FILE_NEW57600TRUEID_FILE_OPEN57601TRUEID_FILE_SAVE57603TRUEID_FILE_PRINT_DIRECT57608TRUEGroupButtonID_HELP_FINDER57667AFALSEFALSE0-1TRUEFALSEButtonID_APP_ABOUT57664About...FALSEFALSE-1-1TRUEFALSESeparatorTRUEButtonIDC_TWITTER32773&TwitterFALSEFALSE-1-1TRUEFALSEButtonIDC_LINKEDIN32774&LinkedInFALSEFALSE-1-1TRUEFALSEButtonIDC_FACEBOOK32775&FacebookFALSEFALSE-1-1TRUEFALSEButtonIDC_INSTAGRAM32776&InstagramFALSEFALSE-1-1TRUEFALSESeparatorTRUEButtonIDC_ISSUES32777I&ssuesFALSEFALSE-1-1TRUEFALSEButtonIDC_DISCUSSIONS32778&DiscussionsFALSEFALSE-1-1TRUEFALSEButtonIDC_WIKI32779&WikiFALSEFALSE-1-1TRUEFALSESeparatorTRUEButtonIDC_USER_MANUAL32784&User ManualFALSEFALSE-1-1TRUEFALSEButtonIDC_CHECK_FOR_UPDATES32785&Check for Updates...FALSEFALSE-1-1TRUEFALSECategoryHomeHPNG_WRITESMALL311PNG_WRITELARGE312PanelIntelliTaskD1FALSEFALSEButtonID_PROPERTIES32771PropertiesFALSETRUE-18TRUEFALSEButtonID_KILL_PROCESS32772Kill processFALSETRUE-19TRUEFALSEButtonIDC_DEVICES32781Device ManagerFALSETRUE-110TRUEFALSEButtonIDC_PROGRAMS32780Installed ProgramsFALSETRUE-111TRUEFALSE
-------------------------------------------------------------------------------- /hlp/IntelliTask.hhp: -------------------------------------------------------------------------------- 1 | [OPTIONS] 2 | Auto Index=Yes 3 | Compatibility=1.1 or later 4 | Compiled file=IntelliTask.chm 5 | Contents file=IntelliTask.hhc 6 | Index file=IntelliTask.hhk 7 | Default topic=main_index.htm 8 | Display compile progress=No 9 | Full-text search=Yes 10 | Language=0x0409 English (United States) 11 | 12 | 13 | [FILES] 14 | afx_hidd_color.htm 15 | afx_hidd_fileopen.htm 16 | afx_hidd_filesave.htm 17 | afx_hidd_find.htm 18 | afx_hidd_font.htm 19 | afx_hidd_newtypedlg.htm 20 | afx_hidd_replace.htm 21 | afx_hidp_default.htm 22 | afx_hidw_dockbar_top.htm 23 | afx_hidw_status_bar.htm 24 | afx_hidw_toolbar.htm 25 | hidr_doc1type.htm 26 | hid_app_about.htm 27 | hid_app_exit.htm 28 | hid_context_help.htm 29 | hid_edit_clear.htm 30 | hid_edit_clear_all.htm 31 | hid_edit_copy.htm 32 | hid_edit_cut.htm 33 | hid_edit_find.htm 34 | hid_edit_paste.htm 35 | hid_edit_redo.htm 36 | hid_edit_repeat.htm 37 | hid_edit_replace.htm 38 | hid_edit_undo.htm 39 | hid_file_close.htm 40 | hid_file_mru_file1.htm 41 | hid_file_new.htm 42 | hid_file_open.htm 43 | hid_file_save.htm 44 | hid_file_save_as.htm 45 | hid_file_send_mail.htm 46 | hid_help_index.htm 47 | hid_help_using.htm 48 | hid_ht_caption.htm 49 | hid_ht_nowhere.htm 50 | hid_next_pane.htm 51 | hid_prev_pane.htm 52 | hid_sc_close.htm 53 | hid_sc_maximize.htm 54 | hid_sc_minimize.htm 55 | hid_sc_move.htm 56 | hid_sc_nextwindow.htm 57 | hid_sc_prevwindow.htm 58 | hid_sc_restore.htm 59 | hid_sc_size.htm 60 | hid_sc_tasklist.htm 61 | hid_view_ruler.htm 62 | hid_view_status_bar.htm 63 | hid_view_toolbar.htm 64 | hid_window_all.htm 65 | hid_window_arrange.htm 66 | hid_window_cascade.htm 67 | hid_window_new.htm 68 | hid_window_split.htm 69 | hid_window_tile.htm 70 | hid_window_tile_horz.htm 71 | hid_window_tile_vert.htm 72 | main_index.htm 73 | menu_edit.htm 74 | menu_file.htm 75 | menu_help.htm 76 | menu_view.htm 77 | menu_window.htm 78 | scrollbars.htm 79 | 80 | [ALIAS] 81 | HIDR_MAINFRAME = main_index.htm 82 | 83 | main_index = main_index.htm 84 | afx_hidd_color = afx_hidd_color.htm 85 | afx_hidd_fileopen = afx_hidd_fileopen.htm 86 | afx_hidd_filesave = afx_hidd_filesave.htm 87 | afx_hidd_find = afx_hidd_find.htm 88 | afx_hidd_font = afx_hidd_font.htm 89 | afx_hidd_newtypedlg = afx_hidd_newtypedlg.htm 90 | afx_hidd_replace = afx_hidd_replace.htm 91 | AFX_HIDP_DEFAULT = AFX_HIDP_DEFAULT.htm 92 | afx_hidw_dockbar_top = afx_hidw_dockbar_top.htm 93 | afx_hidw_status_bar = afx_hidw_status_bar.htm 94 | afx_hidw_toolbar = afx_hidw_toolbar.htm 95 | hid_app_about = hid_app_about.htm 96 | hid_app_exit = hid_app_exit.htm 97 | hid_context_help = hid_context_help.htm 98 | hid_edit_clear = hid_edit_clear.htm 99 | hid_edit_clear_all = hid_edit_clear_all.htm 100 | hid_edit_copy = hid_edit_copy.htm 101 | hid_edit_cut = hid_edit_cut.htm 102 | hid_edit_find = hid_edit_find.htm 103 | hid_edit_paste = hid_edit_paste.htm 104 | hid_edit_redo = hid_edit_redo.htm 105 | hid_edit_repeat = hid_edit_repeat.htm 106 | hid_edit_replace = hid_edit_replace.htm 107 | hid_edit_undo = hid_edit_undo.htm 108 | hid_file_close = hid_file_close.htm 109 | hid_file_mru_file1 = hid_file_mru_file1.htm 110 | hid_file_new = hid_file_new.htm 111 | hid_file_open = hid_file_open.htm 112 | hid_file_save = hid_file_save.htm 113 | hid_file_save_as = hid_file_save_as.htm 114 | hid_file_send_mail = hid_file_send_mail.htm 115 | hid_help_index = hid_help_index.htm 116 | hid_help_using = hid_help_using.htm 117 | hid_ht_caption = hid_ht_caption.htm 118 | hid_ht_nowhere = hid_ht_nowhere.htm 119 | hid_next_pane = hid_next_pane.htm 120 | hid_prev_pane = hid_prev_pane.htm 121 | hid_sc_close = hid_sc_close.htm 122 | hid_sc_maximize = hid_sc_maximize.htm 123 | hid_sc_minimize = hid_sc_minimize.htm 124 | hid_sc_move = hid_sc_move.htm 125 | hid_sc_nextwindow = hid_sc_nextwindow.htm 126 | hid_sc_prevwindow = hid_sc_prevwindow.htm 127 | hid_sc_restore = hid_sc_restore.htm 128 | hid_sc_size = hid_sc_size.htm 129 | hid_sc_tasklist = hid_sc_tasklist.htm 130 | hid_view_ruler = hid_view_ruler.htm 131 | hid_view_status_bar = hid_view_status_bar.htm 132 | hid_view_toolbar = hid_view_toolbar.htm 133 | hid_window_all = hid_window_all.htm 134 | hid_window_arrange = hid_window_arrange.htm 135 | hid_window_cascade = hid_window_cascade.htm 136 | hid_window_new = hid_window_new.htm 137 | hid_window_split = hid_window_split.htm 138 | hid_window_tile = hid_window_tile.htm 139 | hid_window_tile_horz = hid_window_tile_horz.htm 140 | hid_window_tile_vert = hid_window_tile_vert.htm 141 | hidr_doc1type = hidr_doc1type.htm 142 | menu_edit = menu_edit.htm 143 | menu_file = menu_file.htm 144 | menu_help = menu_help.htm 145 | menu_view = menu_view.htm 146 | menu_window = menu_window.htm 147 | scrollbars = scrollbars.htm 148 | HIDD_ABOUTBOX = HID_APP_ABOUT.htm 149 | HID_HT_SIZE = HID_SC_SIZE.htm 150 | HID_HT_HSCROLL = scrollbars.htm 151 | HID_HT_VSCROLL = scrollbars.htm 152 | HID_HT_MINBUTTON = HID_SC_MINIMIZE.htm 153 | HID_HT_MAXBUTTON = HID_SC_MAXIMIZE.htm 154 | AFX_HIDP_INVALID_FILENAME = AFX_HIDP_DEFAULT.htm 155 | AFX_HIDP_FAILED_TO_OPEN_DOC = AFX_HIDP_DEFAULT.htm 156 | AFX_HIDP_FAILED_TO_SAVE_DOC = AFX_HIDP_DEFAULT.htm 157 | AFX_HIDP_ASK_TO_SAVE = AFX_HIDP_DEFAULT.htm 158 | AFX_HIDP_FAILED_TO_CREATE_DOC = AFX_HIDP_DEFAULT.htm 159 | AFX_HIDP_FILE_TOO_LARGE = AFX_HIDP_DEFAULT.htm 160 | AFX_HIDP_FAILED_TO_START_PRINT = AFX_HIDP_DEFAULT.htm 161 | AFX_HIDP_FAILED_TO_LAUNCH_HELP = AFX_HIDP_DEFAULT.htm 162 | AFX_HIDP_INTERNAL_FAILURE = AFX_HIDP_DEFAULT.htm 163 | AFX_HIDP_COMMAND_FAILURE = AFX_HIDP_DEFAULT.htm 164 | AFX_HIDP_PARSE_INT = AFX_HIDP_DEFAULT.htm 165 | AFX_HIDP_PARSE_REAL = AFX_HIDP_DEFAULT.htm 166 | AFX_HIDP_PARSE_INT_RANGE = AFX_HIDP_DEFAULT.htm 167 | AFX_HIDP_PARSE_REAL_RANGE = AFX_HIDP_DEFAULT.htm 168 | AFX_HIDP_PARSE_STRING_SIZE = AFX_HIDP_DEFAULT.htm 169 | AFX_HIDP_FAILED_INVALID_FORMAT = AFX_HIDP_DEFAULT.htm 170 | AFX_HIDP_FAILED_INVALID_PATH = AFX_HIDP_DEFAULT.htm 171 | AFX_HIDP_FAILED_DISK_FULL = AFX_HIDP_DEFAULT.htm 172 | AFX_HIDP_FAILED_ACCESS_READ = AFX_HIDP_DEFAULT.htm 173 | AFX_HIDP_FAILED_ACCESS_WRITE = AFX_HIDP_DEFAULT.htm 174 | AFX_HIDP_FAILED_IO_ERROR_READ = AFX_HIDP_DEFAULT.htm 175 | AFX_HIDP_FAILED_IO_ERROR_WRITE = AFX_HIDP_DEFAULT.htm 176 | AFX_HIDP_STATIC_OBJECT = AFX_HIDP_DEFAULT.htm 177 | AFX_HIDP_FAILED_TO_CONNECT = AFX_HIDP_DEFAULT.htm 178 | AFX_HIDP_SERVER_BUSY = AFX_HIDP_DEFAULT.htm 179 | AFX_HIDP_BAD_VERB = AFX_HIDP_DEFAULT.htm 180 | AFX_HIDP_FAILED_MEMORY_ALLOC = AFX_HIDP_DEFAULT.htm 181 | AFX_HIDP_FAILED_TO_NOTIFY = AFX_HIDP_DEFAULT.htm 182 | AFX_HIDP_FAILED_TO_LAUNCH = AFX_HIDP_DEFAULT.htm 183 | AFX_HIDP_ASK_TO_UPDATE = AFX_HIDP_DEFAULT.htm 184 | AFX_HIDP_FAILED_TO_UPDATE = AFX_HIDP_DEFAULT.htm 185 | AFX_HIDP_FAILED_TO_REGISTER = AFX_HIDP_DEFAULT.htm 186 | AFX_HIDP_FAILED_TO_AUTO_REGISTER = AFX_HIDP_DEFAULT.htm 187 | AFX_HIDW_DOCKBAR_BOTTOM = AFX_HIDW_DOCKBAR_TOP.HTM ; Same topic, 4 different possible hit tests 188 | AFX_HIDW_DOCKBAR_LEFT = AFX_HIDW_DOCKBAR_TOP.HTM ; Same topic, 4 different possible hit tests 189 | AFX_HIDW_DOCKBAR_RIGHT = AFX_HIDW_DOCKBAR_TOP.HTM ; Same topic, 4 different possible hit tests 190 | 191 | [MAP] 192 | #include HTMLDefines.h 193 | 194 | [TEXT POPUPS] 195 | HTMLDefines.h 196 | 197 | [INFOTYPES] 198 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.gitignore.io/api/visualstudio 2 | # Edit at https://www.gitignore.io/?templates=visualstudio 3 | 4 | ### VisualStudio ### 5 | ## Ignore Visual Studio temporary files, build results, and 6 | ## files generated by popular Visual Studio add-ons. 7 | ## 8 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 9 | 10 | # User-specific files 11 | *.rsuser 12 | *.suo 13 | *.user 14 | *.userosscache 15 | *.sln.docstates 16 | 17 | # User-specific files (MonoDevelop/Xamarin Studio) 18 | *.userprefs 19 | 20 | # Mono auto generated files 21 | mono_crash.* 22 | 23 | # Build results 24 | [Dd]ebug/ 25 | [Dd]ebugPublic/ 26 | [Rr]elease/ 27 | [Rr]eleases/ 28 | x64/ 29 | x86/ 30 | [Aa][Rr][Mm]/ 31 | [Aa][Rr][Mm]64/ 32 | bld/ 33 | [Bb]in/ 34 | [Oo]bj/ 35 | [Ll]og/ 36 | 37 | # Visual Studio 2015/2017 cache/options directory 38 | .vs/ 39 | # Uncomment if you have tasks that create the project's static files in wwwroot 40 | #wwwroot/ 41 | 42 | # Visual Studio 2017 auto generated files 43 | Generated\ Files/ 44 | 45 | # MSTest test Results 46 | [Tt]est[Rr]esult*/ 47 | [Bb]uild[Ll]og.* 48 | 49 | # NUnit 50 | *.VisualState.xml 51 | TestResult.xml 52 | nunit-*.xml 53 | 54 | # Build Results of an ATL Project 55 | [Dd]ebugPS/ 56 | [Rr]eleasePS/ 57 | dlldata.c 58 | 59 | # Benchmark Results 60 | BenchmarkDotNet.Artifacts/ 61 | 62 | # .NET Core 63 | project.lock.json 64 | project.fragment.lock.json 65 | artifacts/ 66 | 67 | # StyleCop 68 | StyleCopReport.xml 69 | 70 | # Files built by Visual Studio 71 | *_i.c 72 | *_p.c 73 | *_h.h 74 | *.ilk 75 | *.meta 76 | *.obj 77 | *.iobj 78 | *.pch 79 | *.pdb 80 | *.ipdb 81 | *.pgc 82 | *.pgd 83 | *.rsp 84 | *.sbr 85 | *.tlb 86 | *.tli 87 | *.tlh 88 | *.tmp 89 | *.tmp_proj 90 | *_wpftmp.csproj 91 | *.log 92 | *.vspscc 93 | *.vssscc 94 | .builds 95 | *.pidb 96 | *.svclog 97 | *.scc 98 | 99 | # Chutzpah Test files 100 | _Chutzpah* 101 | 102 | # Visual C++ cache files 103 | ipch/ 104 | *.aps 105 | *.ncb 106 | *.opendb 107 | *.opensdf 108 | *.sdf 109 | *.cachefile 110 | *.VC.db 111 | *.VC.VC.opendb 112 | 113 | # Visual Studio profiler 114 | *.psess 115 | *.vsp 116 | *.vspx 117 | *.sap 118 | 119 | # Visual Studio Trace Files 120 | *.e2e 121 | 122 | # TFS 2012 Local Workspace 123 | $tf/ 124 | 125 | # Guidance Automation Toolkit 126 | *.gpState 127 | 128 | # ReSharper is a .NET coding add-in 129 | _ReSharper*/ 130 | *.[Rr]e[Ss]harper 131 | *.DotSettings.user 132 | 133 | # JustCode is a .NET coding add-in 134 | .JustCode 135 | 136 | # TeamCity is a build add-in 137 | _TeamCity* 138 | 139 | # DotCover is a Code Coverage Tool 140 | *.dotCover 141 | 142 | # AxoCover is a Code Coverage Tool 143 | .axoCover/* 144 | !.axoCover/settings.json 145 | 146 | # Visual Studio code coverage results 147 | *.coverage 148 | *.coveragexml 149 | 150 | # NCrunch 151 | _NCrunch_* 152 | .*crunch*.local.xml 153 | nCrunchTemp_* 154 | 155 | # MightyMoose 156 | *.mm.* 157 | AutoTest.Net/ 158 | 159 | # Web workbench (sass) 160 | .sass-cache/ 161 | 162 | # Installshield output folder 163 | [Ee]xpress/ 164 | 165 | # DocProject is a documentation generator add-in 166 | DocProject/buildhelp/ 167 | DocProject/Help/*.HxT 168 | DocProject/Help/*.HxC 169 | DocProject/Help/*.hhc 170 | DocProject/Help/*.hhk 171 | DocProject/Help/*.hhp 172 | DocProject/Help/Html2 173 | DocProject/Help/html 174 | 175 | # Click-Once directory 176 | publish/ 177 | 178 | # Publish Web Output 179 | *.[Pp]ublish.xml 180 | *.azurePubxml 181 | # Note: Comment the next line if you want to checkin your web deploy settings, 182 | # but database connection strings (with potential passwords) will be unencrypted 183 | *.pubxml 184 | *.publishproj 185 | 186 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 187 | # checkin your Azure Web App publish settings, but sensitive information contained 188 | # in these scripts will be unencrypted 189 | PublishScripts/ 190 | 191 | # NuGet Packages 192 | *.nupkg 193 | # NuGet Symbol Packages 194 | *.snupkg 195 | # The packages folder can be ignored because of Package Restore 196 | **/[Pp]ackages/* 197 | # except build/, which is used as an MSBuild target. 198 | !**/[Pp]ackages/build/ 199 | # Uncomment if necessary however generally it will be regenerated when needed 200 | #!**/[Pp]ackages/repositories.config 201 | # NuGet v3's project.json files produces more ignorable files 202 | *.nuget.props 203 | *.nuget.targets 204 | 205 | # Microsoft Azure Build Output 206 | csx/ 207 | *.build.csdef 208 | 209 | # Microsoft Azure Emulator 210 | ecf/ 211 | rcf/ 212 | 213 | # Windows Store app package directories and files 214 | AppPackages/ 215 | BundleArtifacts/ 216 | Package.StoreAssociation.xml 217 | _pkginfo.txt 218 | *.appx 219 | *.appxbundle 220 | *.appxupload 221 | 222 | # Visual Studio cache files 223 | # files ending in .cache can be ignored 224 | *.[Cc]ache 225 | # but keep track of directories ending in .cache 226 | !?*.[Cc]ache/ 227 | 228 | # Others 229 | ClientBin/ 230 | ~$* 231 | *~ 232 | *.dbmdl 233 | *.dbproj.schemaview 234 | *.jfm 235 | *.pfx 236 | *.publishsettings 237 | orleans.codegen.cs 238 | 239 | # Including strong name files can present a security risk 240 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 241 | #*.snk 242 | 243 | # Since there are multiple workflows, uncomment next line to ignore bower_components 244 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 245 | #bower_components/ 246 | 247 | # RIA/Silverlight projects 248 | Generated_Code/ 249 | 250 | # Backup & report files from converting an old project file 251 | # to a newer Visual Studio version. Backup files are not needed, 252 | # because we have git ;-) 253 | _UpgradeReport_Files/ 254 | Backup*/ 255 | UpgradeLog*.XML 256 | UpgradeLog*.htm 257 | ServiceFabricBackup/ 258 | *.rptproj.bak 259 | 260 | # SQL Server files 261 | *.mdf 262 | *.ldf 263 | *.ndf 264 | 265 | # Business Intelligence projects 266 | *.rdl.data 267 | *.bim.layout 268 | *.bim_*.settings 269 | *.rptproj.rsuser 270 | *- [Bb]ackup.rdl 271 | *- [Bb]ackup ([0-9]).rdl 272 | *- [Bb]ackup ([0-9][0-9]).rdl 273 | 274 | # Microsoft Fakes 275 | FakesAssemblies/ 276 | 277 | # GhostDoc plugin setting file 278 | *.GhostDoc.xml 279 | 280 | # Node.js Tools for Visual Studio 281 | .ntvs_analysis.dat 282 | node_modules/ 283 | 284 | # Visual Studio 6 build log 285 | *.plg 286 | 287 | # Visual Studio 6 workspace options file 288 | *.opt 289 | 290 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 291 | *.vbw 292 | 293 | # Visual Studio LightSwitch build output 294 | **/*.HTMLClient/GeneratedArtifacts 295 | **/*.DesktopClient/GeneratedArtifacts 296 | **/*.DesktopClient/ModelManifest.xml 297 | **/*.Server/GeneratedArtifacts 298 | **/*.Server/ModelManifest.xml 299 | _Pvt_Extensions 300 | 301 | # Paket dependency manager 302 | .paket/paket.exe 303 | paket-files/ 304 | 305 | # FAKE - F# Make 306 | .fake/ 307 | 308 | # CodeRush personal settings 309 | .cr/personal 310 | 311 | # Python Tools for Visual Studio (PTVS) 312 | __pycache__/ 313 | *.pyc 314 | 315 | # Cake - Uncomment if you are using it 316 | # tools/** 317 | # !tools/packages.config 318 | 319 | # Tabs Studio 320 | *.tss 321 | 322 | # Telerik's JustMock configuration file 323 | *.jmconfig 324 | 325 | # BizTalk build output 326 | *.btp.cs 327 | *.btm.cs 328 | *.odx.cs 329 | *.xsd.cs 330 | 331 | # OpenCover UI analysis results 332 | OpenCover/ 333 | 334 | # Azure Stream Analytics local run output 335 | ASALocalRun/ 336 | 337 | # MSBuild Binary and Structured Log 338 | *.binlog 339 | 340 | # NVidia Nsight GPU debugger configuration file 341 | *.nvuser 342 | 343 | # MFractors (Xamarin productivity tool) working folder 344 | .mfractor/ 345 | 346 | # Local History for Visual Studio 347 | .localhistory/ 348 | 349 | # BeatPulse healthcheck temp database 350 | healthchecksdb 351 | 352 | # Backup folder for Package Reference Convert tool in Visual Studio 2017 353 | MigrationBackup/ 354 | 355 | # End of https://www.gitignore.io/api/visualstudio 356 | --------------------------------------------------------------------------------