Windows Task Manager
The following in written by David Plummer, the creator of Windows Task Manager.
I wrote Task Manager and I just remembered something...
Figured I should write this stuff down before I forget it all, and where better for TaskManager than r/techsupport! If there's any appetite for this, I'll expand on it! I don't blog, so here goes...
Some Task Manager lore: I'm the Microsoft (Redmond, '93) developer that wrote TaskMgr at home in my den in about 1994 and then the NT silverback devs let me check it into the main tree even though I was a greenhorn at the time. So that meant I got to bring it into work and polish it up and make it an official part of Windows, where it remains to this day. So I got to define my own day job, actually, which was nice! I don't know if it's still like that, but great culture and people.
This is all based on XP, as I left long ago, but it's still the same core app underneath. In no particular order:
- If Task Manager ever hangs or crashes, start another by pressing Ctrl+Shift+Escape . Winlogon will look for an existing instance and try to revive it for up to 10 seconds. If the old Taskmgr doesn't start making sense by responding with a secret code within that time, another one will be launched. That way, you're never without a Taskmgr as long as there are some resources available.
- Task Manager will load in reduced mode if resources are short, like only loading the Processes page if that's what's needed to get going. It's one of the very few apps that won't just "fail and bail" when things go wrong.
- If Task Manager ever becomes internally corrupted, kill/close it. Restart it while holding down Ctrl+Alt+Shift, and Task Manager will reset ALL internal settings to factory fresh if it sees that key combo at startup. Same works for every app I've written, btw, I think!
- If all your titlebars disappear and you just have a graph, double-click dead client space to switch back to normal mode. This no-titlebar mode is a mode I added to follow the NT clock, where you could remove borders as well, but it confused more people than it ever helped I'm sure!
- I initially drew the meters as 7-segment LEDs but that wasn't localizable to all cultures (How do you do a right-to-left reading 7-segment LED for Saudi Arabia?) so they only lasted for one version or so.
- Ctrl+Shift+Escape will launch Taskmgr without any help from the Shell, so if the Shell/Explorer is dead use this key combo to bring up TM and then reset/restart the shell. Even if your tray is missing and gone, this combo should start it.
- If the shell can't start something or is hung, try Task Manager. It has a mode where it will load without ANY references to the shell32.dll and allow you to start programs like CMD.EXE without the start menu.
- You can find the binary for any executing process in the process table by right clicking and pick "Show File Location". You can also search it online, but I don't know if they have useful info for much.
- There should be nothing that TaskMgr can't kill - it will even escalate privilege and (if you have it) enable debug privilege to attach to and kill apps that way if needed. If TM can't kill it, you've got a kernel problem.
- A lot of people don't seem to know you can add many additional columns, remove others, drag them around to reorder, etc.
- The reason there's a Window class called "DavesFrameWndProc" is because to get flicker-free resizing I needed group boxes to not try to paint on one another, so subclass them, give them their own wndproc, and enabling WS_CLIPSIBLINGS during WM_CREATE. At least I think so!
- TM is one of the apps I'm most proud of because it is probably the first or at least most visually complicated app to ever be fully resizable in all dimensions without any flicker up till then. I was hardcore about memory and flicker in my day, so it was under 100K for the exe and never flashed or crashed, that was my thing! Having the GDI32 and User32 guys down the hall sure helped.
I also wrote/ported Space Cadet pinball, zip folders, worked on start menu, shell, calc, ole32, product activation, and some other stuff. I was in MS-DOS before that but I doubt anyone is still supporting MS-DOS!
Edit: Looks like comments have been locked, so I'll update this one time with some answers to the most interesting/common questions below!
- On the command line, I'm stumped, as I don't remember command line args to it at all!
- On Space Cadet, yes, you can run it on Windows 10, but I doubt it's official or legal, so will point you at your favorite search engine for that one, but it's easy. And on Space Cadet, reminder that Maxis did the very original (M. Ridgeway) and mine was just a rewrite in 32-bit portable C using their art. That way it ran on the PowerPC, Alpha, and MIPS as well. And yes, in the original there is a "God Mode" where you can drag the ball around, click on targets, etc. Search is your friend there as well.
- On what I'm doing these days, I volunteer to teach kids to program at school, or used to until recently, so now I'm mostly coding and working on my coding channel, which you can follow here: https://www.youtube.com/channel/UCNzszbnvQeFzObW0ghk0Ckw and I also restore old musclecars, pickups, etc. So yes, I still code every day!
- On the notion that there are some things that Taskmgr can't kill, there were post-XP for sure but they were intentional limits. I remember something about journalists making news by using TM to kill the root winlogon session, for example, which would bugcheck the machine intentionally. But the fact you could bluescreen NT didn't look good, I suspect, so they likely started to protect people from themselves by disallowing killing win32k.sys and other essential components.
- Thanks to the mods for being flexible on this one!
[original source https://www.reddit.com/r/techsupport/comments/gqb915/i_wrote_task_manager_and_i_just_remembered/]
If you have a question, put $5 at patreon and message me.