I love this idea of striving so hard to elminate every single cause of customer complaints.
But, in I’m not sure about adding the explorer-dection code to all command line apps.
Suppose I have shortcut on my Windows desktop to an EXE with the code from the artcile. And in the shortcut I’ve specified all the nice command line params I want. So I can click on it on the shortcut and run my EXE.
Example: I might have a shortcut that does a “git -pull” that I can click on to get latest code for some project.
If the app (GIT.EXE in above example) had the author’s feature, then wouldn’t the shortcut warn me that I should be running from a CMD.EXE? When you click on an icon, the “app” that starts it is probably explorer.exe
I guess you could also only check for explorer.exe when there are no params. That would be a little better.
My problem with the author’s final change is that it just reinforces the behavior he’s trying to avoid. Why would a user go to Start -> Run -> cmd -> cd /whatever/dir -> ngrok 80 like it’s telling them, when they can just double click it every time, ignore the line of text yelling at them, and type ngrok 80?
Start -> Run -> cmd -> cd /whatever/dir -> ngrok 80
Adding a small amount of pain but still enabling the user would probably work: for missing parameters, prompt the user for the parameters, and then show guidelines on how to start the program more effectively later.
I’m a fan of not hard failing here, and think there’s a way to do it that doesn’t encourage “bad” behavior.