Replace Explorer in all calls?

Is there a way to get Opus to replace Explorer in all calls for file and folder look-ups? I believe I have set the correct program settings, but many programs still call Win Explorer. I am running Win 7 64 bit and Opus 10.2.0.0 Pro Edition.

If you're referring to File Open/Save dialogs then no, Opus won't replace those.

This comes up from time to time.

Some programs insist on invoking Windows Explorer, it has nothing to do with "File Open/Save dialogs".

It is a case of persuading software writers to use the file manager set as the Windows default rather than invoking Explorer.

It is the same as getting programs to open the default browser rather than always using Internet Explorer.

Some programmers insist that Microsoft knows best.

Thank you

How DO I find out what the current default File Manager is?
I want to do the right approach in my C# .NET application, and it feels like there should be a way to get there - but trying to google "windows get default file viewer" or ".net get default file viewer application" just has me flooded with other things I'm not looking for

Windows doesn't really have the concept of "default File Manager", there's no official system for selecting something other than Explorer.

You wouldn't normally need to look it up; rather, just ask Windows to open the folder and it should go to the right program.

If you're passing a folder to ShellExecuteEx, use the NULL (default) verb instead of explicitly asking for the "open" verb.

The SHOpenFolderAndSelectItems API also works with Opus, although it's a lot harder to intercept and may not work with all other file managers.

Other methods (like running explorer.exe directly) can work in some situations but aren't recommended.

1 Like

Thank you!
I didn't know the way to open directories with the default application. Simply "running" the path works for files, but not for directories - I didn't know about the whole Verb thing.

For others looking for a simple C# .NET implementation: The following works for both files and directories (Folders)

 public static void openWithDefault(string path)
 {
     ProcessStartInfo psi = new ProcessStartInfo();
     psi.UseShellExecute = true;
     psi.Verb = null;
     psi.FileName = path;
     Process.Start(psi);
}
1 Like