1

Here's a question I don't think has been asked before.

Background: I hate the FolderBrowserDialog GUI component with a fiery passion. You know, the useless little folder tree view dialog which some programs insist on using to select files or folders? It looks like this:

die

If possible, I would like all programs to be effectively blocked from using this terrible little dialog and instead be forced to use the regular OpenFileDialog instead. It looks like this:

enter image description here

Also, I don't know what this variant of the SaveFileDialog is called, where the left-hand pane is replaced with those obnoxiously large icons, but I hate it too. If possible I'd also like to banish it from all programs and have it replaced with the "normal" SaveFileDialog, above. It looks like this:

enter image description here

Is any of this possible using some kind of system-wide hook/intercept or is it just a pipe dream?

8
  • 1. Browse for folder is a shell dialog. File Open is a common dialog. Different product teams. 2. Office doesn't use Windows' dialogs. They use their own. Any answer won't apply to Office. 3. To change appearance ONLY you would need to write a dll, inject into all processes, hook the API call, change the flags for appearance. A very advanced undertaking. Commented Aug 16, 2021 at 19:58
  • docs.microsoft.com/en-us/windows/win32/api/commdlg/… and see flags. Commented Aug 16, 2021 at 20:04
  • Are there any "real" programs that use the BrowseForFolder dialog? I use it in scrpts because it's the easiest to add, but don't recall seeing it in a stand-alone program. Commented Aug 16, 2021 at 20:18
  • Its purpose is to choose a folder in Internet Explorer 4 / Desktop Update (bringing IE features to the Win 95 style desktop ie Active Desktop). Commented Aug 16, 2021 at 20:27
  • @KeithMiller This also marked the change from Office driving Windows user interface (toolbars, context menus, etc) to Internet Explorer driving Windows user interface (Active Desktop items embedded in a html desktop). Commented Aug 16, 2021 at 20:44

1 Answer 1

3

Just a pipe dream.

No, you can't force a program to make a different API call because you don't like the one it made.

I realize that these essentially accomplish the same thing but the arguments and parameters are completely different between these two interfaces.

In addition, a programmer can customize the dialog that appears depending on which interface is called.

5
  • Thought so. Thanks. Just out of interest, any idea what the two different versions of the "Save As" dialog as featured in my screenshots are called?
    – WackGet
    Commented Aug 18, 2021 at 22:37
  • The first one (that you don't like) is called a FolderBrowserDialog and you can tell by the c# default icon that it is being called from c#. The second one is called a SaveFileDialog. Both dialogs have been there since Windows95. SOME of what sucks is that programmers can limit the functionality using flags to launch the thing.. for instance, not showing things windows can see on the network. Commented Aug 19, 2021 at 0:42
  • What's the third one called? Also a SaveFileDialog but with different flags to show the large icons on the left?
    – WackGet
    Commented Aug 19, 2021 at 18:34
  • I believe that it is the older version of the same dialog. It looks like XP and possibly Vista.. I looked at the flags for the API call and nothing jumped out at be but I bet it is in there. Commented Aug 19, 2021 at 18:46
  • It's not just in XP/Vista. The dialog is still in use on Windows 10, for example in Photoshop CS5's save dialog. (I still hate it.)
    – WackGet
    Commented Dec 1, 2022 at 1:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .