ShellExecute and Your Default Browser
by Mr. Shellex
17 July 1998
> This is quite interesting. Never noticed it myself. Would you please
> write a small essay on this explaining CLEARLY and SIMPLY what's
> (probably) going on? This will set the ball rolling. If you add a
> (bogus made but working) web address you'll get quite a lot of input
> and even if your essay/solution/approach is not 100% correct we'll all
> quickly get things straight.
> awaiting your work.
ShellExecute and Your Default Browser
If you are a MSIE user please don't bother reading this article. It
will have little interest for you.
If you use one of the other browsers I have a little experiment for you
Open a DOS window.
Type: "http://www.somewhere.com" -- without quotes of course ;-)
Press Enter and wait.
All computers with MSIE installed as the default browser will have
their browser invoked and the page www.somewhere.com will be
invoked -- provided it exists.
Last time I checked there was no such active page.
Most computers with an alternate browser (such as Netscape) installed
as the default will have their browser invoked.
However, and here is where the problem lies, not all computers with an
alternate browser respond to this command.
"So what's the big deal," you may ask. "How many times does one type
at the dos prompt?"
This is just a symptom. The registry entries and command shell being
used to process the dos command appears to be the same as that used
by most programs that try to link from within their
code to the default browser.
Many programs such as Pegasus have the user configure
the browser link by hand. Other programs such as
GameSpy (yes, I'm a quake player) rely upon the
ShellExecute() command to call up the default browser.
For most of my buddies they can just click on the "Upgrade
to Latest Version" button and GameSpy automatically brings
up the default browser pointed at the download page.
"So what's the big deal," you may ask. "Why not just load
the browser yourself and go to the download page? What's the
matter: ya lazy or something?"
And that something is pissed.
I have an attitude. A bad attitude. I don't like bullies.
I don't like people that use their power, weight, position,
wealth, or size in any measure to push around the weaker.
That is exactly what Microsoft is doing.
They have hidden the answer to my question: "How the hell
do I make my default browser come up with ShellExecute()?"
Those son-of-female-dogs have not seen fit to publish
anywhere that I can find which registry keys
are involved in this process. There is no wizard for
making your Opera browser the fully functional
totally integrated default browser. This means that if
you want ALL features implemented you have
to use MSIE.
I have tried searching the registry for codes that need
changing. I compared a "working" registry with
one that wasn't. I exported from the good and imported
into the bad (in case my typing was off).
I have run around in circles trying to "fix" the
non-MSIE computers to run seamlessly.
I haven't as yet been able to make it work.
I'm not the world's greatest Win95 programmer. But I do
know may way around a bit.
If there is anyone out there that knows the exact keys
that need to be modified in a registry so that
an alternate browser can be made into a fully functional
totally integrated default browser please
have the goodness of heart to send them to
I will verify that they work and do my best to post the
answer everywhere I can and back here.
Or, maybe you can give me a clue on how to crack the
ShellExecute() function so that I can follow
what in that mythologically-ultra-hot-place is going on.
It like totally rubs me the wrong way that Microsoft is
giving themselves this edge over all other
browsers by virtue of hidden and secret information.
Please don't send me the url for Stuart Patterson's article.
I've already found and used that article about as far as
it will go. It does have a nice workaround for
standalone applications. However there is the annoying
problem of multiple invocations of the
browser. Every function call will open a new instance of the browser.
Not too satisfying.
If you know how to modify his sample so that multiple instances
of the program don't happen then that might help. In that
case please send me
the code sample.
Be forwarned I will share this code with a friend that
will share it with every third-party web program developer
he can find. GameSpy, Pegasus, Opera, Mozilla.Org, etc.,
Anything to take about the edge that MicroSoft has.
Or, if you are interested in taking down MicroSoft on
notch. How about working with us to produce
a Wizard that will scan the complete registry and make
YOUR selected browser the default browser?.
We can post this little utility as FreeWare on the net
and let all the little Mom's and Pop's use it to slip out
from under the domination of MSIE.
Of course I fully intend to post the source code so that
other third-party developers can take the program further
as the environment changes.
MicroSoft is trying to hold dominance of the computer world
through selective release of information. The only way to
combat this is through transparency, reversing studies and
the free release of the information they are trying
I believe I have a right to know which keys in my registry
are being used so that I can modify them.
Thank you for any help you can give.
**** The views/opinions expressed here are not
**** necessarily my own. But I don't know whom
**** else to blame.
Is reverse engineering illegal?