Why does Opera take associations instead of IE?

  • Thread starter Thread starter Jane
  • Start date Start date
J

Jane

I have got Win XP Pro.

The XP administrator uses Opera 6 and wants all files and email links
with HTM or HTML to be seen by launching Opera.

One XP user sharing the same system prefers to use IE6. However when
the user executes a file or link (perhaps sent to them in email)
which ends in HTM or HTML then it is *Opera* which launches to show
the contents. They want IE6 to launch instead.

How can I arange this to happen?

I have signed on as the user and gone to Control Panel -> Internet
Options -> Programs and set the box so that IE checks it is the
default browser.

I notice that if, signed on as a user, I create a text file with the
extension HTM then the file's icon is for Opera. It is almost as if
I can not set file associations to be different for a user than
they are for the administrator. Is this true?
 
Depends how you do it if it applies to all users or per user. This is a post I did about the same issue but OE. Though I'm only addressing the per user part of it.


File Associations, incl mailto (OE vs OL), are stored in the registry under
HKEY_CLASSES_ROOT (aka HKCR)

But there is actually no such thing as HKCR, it is a combined view of these two keys
HKEY_LOCAL_MACHINE\SOFTWARE\Classes and
HKEY_CURRENT_USER\Software\Classes
(the root key is referred to as HKLM and HKCU)

Editing HKCR edits the branch under HKLM unless there is the same key/value under HKCU in which case HKCU is edited. HKCU settings overrides HKLM.

Therefore you need to set
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto
to the system default, and duplicate it with user specific changes to
HKEY_CURRENT_USER\SOFTWARE\Classes\mailto
where it won't exist unless a user has created it

So. Set your defaults for OE, type regedit in Start - Run go to HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto
Right click the key and choose export.

Set the default for Outlook, right click the same key, and choose export with a different name.

Open both files in notepad, Edit menu - Replace. Put
HKEY_LOCAL_MACHINE
for the find string and
HKEY_CURRENT_USER
for the replace.

Any user now needs to double click one or the other file to set their user defaults.
 
Such associations are mostly global. But there is a setting
that is individual to a user which I *think* will have the
desired effect. Have the general default (to Opera) set up,
then in a logon by the user wanting IE, run regedit.exe and open
to HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\
Explorer\FileExts\.htm
(and repeat at .html)
Here in the right pane use Edit - New - String value, call the
value Application
and then double click on that and set to
iexplore.exe


Do I simply change all instances of Opera.exe into iexplore.exe in
the following?

..htm contains this

(default) REG_SZ (value not set)

if I go into OpenWithList within .htm then I see this

(default) REG_SZ (value not set)
a REG_SZ opera.exe
MRUList REG_SZ a

and if I go into OpenWithProgids I see this

(default) REG_SZ (value not set)
Opera.HTML REG_SZ (zero length binary value)

In .html the registry is slightly different because there is no
OpenWithList entry but the contents OpenWithProgids is exactly the
same as for the .htm entry.

Thank you for any advice.
 
Jane said:
Do I simply change all instances of Opera.exe into iexplore.exe in
the following?

.htm contains this

(default) REG_SZ (value not set)

The idea is to leave the entries you mention alone, but to *add* the one
I specified, a string value called Application, and set it to the
application you want to use, which is iexplorer.exe
 
Alex Nichol said:
The idea is to leave the entries you mention alone, but to *add*
the one I specified, a string value called Application, and set
it to the application you want to use, which is iexplorer.exe


Sadly, this does not work. Thanks for trying.

Do you have any other suggestions?
 
David Candy said:
I've told you the correct way to do it.


David I have looked at your post at
<and saw that you were referring to "mailto" and Outlook. But I was
referring to using a browser to view web pages. I don't normally use
Outlook or Outlook Express anyway.

Maybe I got all mixed up but I couldn't see how to use the
instructions you kindly posted.

Could you please clarify how to make changes so that HTM and HTML
files are associated with IE rather than Opera.

If you recall, the administrator on my XP Pro system uses Opera and
the user uses IE6. Each wants to have an association to launch their
own preferred browser. At the moment HTM and HTML are associated
with Opera for all users.
 
You missed the point of the whole post. I did go to great lengths to explain it.

Where it refers to mailto you put in http, .htm, .html, htmlfile which are the 4 main registry keys. Though .htm and .html should point to htmlfile which is what you'd change.

http determines what browser is the default. htmlfile (and thus .htm and ..html) is what happen if you open a web page stored on your hard drive.

Knowing the above reread it again. I've gone to great length explaining how per user and per machine work. Seeing you apparently could already edit the registry I only added the extra info using OE as an example (cause I had just written it for someone else).
 
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\http\shell\open
@="\"d:\\Program Files\\Internet Explorer\\iexplore.exe\" -nohome"

[HKEY_CURRENT_USER\Software\Classes\http\shell\open\command]
@="notepad %1"

The above shows a system default of IE, but the current users default is notepad (I only have one browser so have to substitute notepad for opera - notepad is a hopeless browser).

If the user logs on and looks at
HKEY_CLASSES_ROOT\http\shell\open\command
they will see notepad. If they edit it it will change
HKEY_CURRENT_USER\Software\Classes\http\shell\open\command

However if a user logs on who does not have the
HKEY_CURRENT_USER\Software\Classes\http\shell\open\command in their registry then looking at
HKEY_CLASSES_ROOT\http\shell\open\command
will show IE and editing the above changes will change
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\http\shell\open

Current user overrides local machine.

But this is just a rehash of what I said with OE.
--
http://www.g2mil.com/Apr2003.htm
http://www.sharpword.com/fascism.htm
---------------------------------------------------------------
David Candy
http://www.mvps.org/serenitymacros
---------------------------------------------------------------
You missed the point of the whole post. I did go to great lengths to explain it.

Where it refers to mailto you put in http, .htm, .html, htmlfile which are the 4 main registry keys. Though .htm and .html should point to htmlfile which is what you'd change.

http determines what browser is the default. htmlfile (and thus .htm and ..html) is what happen if you open a web page stored on your hard drive.

Knowing the above reread it again. I've gone to great length explaining how per user and per machine work. Seeing you apparently could already edit the registry I only added the extra info using OE as an example (cause I had just written it for someone else).
 
David Candy said:
You missed the point of the whole post. I did go to great
lengths to explain it.

Where it refers to mailto you put in http, .htm, .html, htmlfile
which are the 4 main registry keys. Though .htm and .html should
point to htmlfile which is what you'd change.

http determines what browser is the default. htmlfile (and thus
.htm and .html) is what happen if you open a web page stored on
your hard drive.

Knowing the above reread it again. I've gone to great length
explaining how per user and per machine work. Seeing you
apparently could already edit the registry I only added the
extra info using OE as an example (cause I had just written it
for someone else).

If you recall what I want is for the administrator to default to
Opera and for a user to default to IE6 when htm files are opened.

I have spent a few days just getting up to speed with some of the
slightly advanced things you posted about in these two messages:

<<
The bit I am still uncertain about lies in the text above. You
write: "Though .htm and .html should point to htmlfile which is what
you'd change." I don't understand this because when I go to

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.html

I see only this

(Default) REG_SZ Opera.HTML
Content Type REG_SZ text/html
Perceived Type REG_SZ text

Is this what you mean by "point to". And where is ".htm"?

THis is making me very confused. To recap, all I want is for the
administrator to default to Opera and for a user to default to IE6.

Can you or someone else advise me on this because editing the
registry is not the same thing as understanding its structure. I can
edit it but the structure is a bit beyond me.

Jane

==============

Using a slightly edited version of your text (copied below for
convenience) I found htmfile and that was ok. But

++++++++++++++

Depends how you do it if it applies to all users or per user. This is
a post I did about the same issue but OE. Though I'm only addressing
the per user part of it.

File Associations, incl mailto (OE vs OL), are stored in the registry
under
HKEY_CLASSES_ROOT (aka HKCR)

But there is actually no such thing as HKCR, it is a combined view of
these two keys
HKEY_LOCAL_MACHINE\SOFTWARE\Classes
and
HKEY_CURRENT_USER\Software\Classes
(the root key is referred to as HKLM and HKCU)

Editing HKCR edits the branch under HKLM unless there is the same
key/value under HKCU in which case HKCU is edited. HKCU settings
overrides HKLM.

Therefore you need to set
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto
to the system default, and duplicate it with user specific changes to
HKEY_CURRENT_USER\SOFTWARE\Classes\mailto
where it won't exist unless a user has created it

So to set your defaults for OE, type regedit in Start - Run, go to
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto
Right click the key and choose export.

Set the default for Outlook, right click the same key, and choose
export with a different name.

Open both files in notepad, Edit menu - Replace. Put
HKEY_LOCAL_MACHINE
for the find string and
HKEY_CURRENT_USER
for the replace.

Any user now needs to double click one or the other file to set their
user defaults.

+++++++++++++++

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\http\shell\open
@="\"d:\\Program Files\\Internet Explorer\\iexplore.exe\" -nohome"

[HKEY_CURRENT_USER\Software\Classes\http\shell\open\command]
@="notepad %1"

The above shows a system default of IE, but the current users default
is notepad (I only have one browser so have to substitute notepad for
opera - notepad is a hopeless browser).

If the user logs on and looks at
HKEY_CLASSES_ROOT\http\shell\open\command
they will see notepad. If they edit it it will change
HKEY_CURRENT_USER\Software\Classes\http\shell\open\command

However if a user logs on who does not have the
HKEY_CURRENT_USER\Software\Classes\http\shell\open\command
in their registry then looking at
HKEY_CLASSES_ROOT\http\shell\open\command
will show IE and editing the above changes will change
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\http\shell\open

Current user overrides local machine.

But this is just a rehash of what I said with OE.
 
Back
Top