registry

  • Thread starter Thread starter JustMe
  • Start date Start date
Michael J. Leaver said:
It doesn't read anything from the registry to open your default browser.
Firebird, not IE, is my default browser and InstallSpy correctly opens that
to use view the log file, or any HTML file.

InstallSpy asks the *shell* (i.e. explorer, not internet explorer) to open
the log file (using the Windows function ShellExecute). It is Windows itself
that decides what program to use to open the log file, not InstallSpy. If
Windows is opening IE and not OB1 then it appears you have either got
something setup wrongly, or there is a bug in Windows itself.
</snip>

Actually, Explorer is the Windows Shell

What you are talking about when mentioning them being different, is Windows
Explorer, which is still basically, Internet Explorer as Windows Explorer
(hence, if you type a path in either of them to a local file, it will launch
the file..... if you type a URL, it will launch a URL....... if you type a
path to a folder, it will open the folder).

When it comes to launching file's, the Shell function and ShellExecute API
read the default launch command from
HKEY_CLASSES_ROOT\.extension\Open\Command and launch the file in the program
that is specified.

For example, if the launch command for the .txt extension is Notepad.exe
then Shell and ShellExecute will look at;

HKEY_CLASSES_ROOT\.txt\Open\Command

It will then look in Command for a string containing a program and it's
path. For example;

C:\Windows\Notepad.exe

Along with any parameters (i.e. %1)

If Shell is opening the wrong browser, then it is likely that the cause is
because the wrong browser has been set as the default, and not because of a
bug in Windows.

--

Regards

Steven Burn
Ur I.T. Mate Group
www.it-mate.co.uk

Keeping it FREE!

Disclaimer:
I know I'm probably wrong, I just like taking part ;o)
 
Thanks Steven,

Perhaps in your haste to educate people you didn't clearly read my post.

I know what the shell is, as I indicated clearly in the post. I pointed out
explorer being the shell, and not IE, to not confuse the matter (yes, they
are basically the same thing but if I had said it asked explorer then some
people may have been confused and thought I meant IE etc. etc).

As I already mentioned "If Windows is opening IE and not OB1 then it appears
you have either got something setup wrongly..."

If anyone else is having the problem of IE being opened, instead of your
default browser, please feel free to email me and mention which browser it
is that you are using so that I can investigate further.

Thanks
 
Michael said:
As with all my programs, I am completely open to suggestions on
improvements, changes, enhancements, etc. The many people who email
with those suggestions will tell you the same. I write these programs
originally for myself, but make them available to anyone who wants to
use or try them.

From what I can tell, you are concerned about:

- Forcibly (?) opening IE and displaying a PayPal graphic. Yes, it
opens your default web browser because the log file is in HTML. The

Apparently, going by Karen's report, it is not the default browser that
gets opened.
You make it clear that that is not what you intended and it really makes
no sense to doubt that.
I am sure that this can be solved.
PayPal graphic will be removed (as it already has from the help file)
in the next version. Having an always-on Internet connection, I do
forget that some people do not.

I can go only by what I read on your website, not by how it is
implemented in InstallSpy, as I did not (yet) install it.

"If you would like to make a voluntary contribution to continue
development of this and new software and keep this web-site open, please
make a donation!"

IMO, allmost all people in this group will regard this is as completely
on topic in this group.
They will also have no problem at all with a Paypal graphic, which when
clicked would start the (voluntary) donation process.

Problemetic is only:
- when the Paypal graphic must be retrieved from the Internet.
i.e. just using the program or viewing its reports
- when the donation request is too much and too often in your face
(e.g. in every report file)

I repeat: I do not know how it is implemented in the program.
I suggest that there is no problem when you put the request with
accompanying Paypal graphic (stored locally or as a resource in the
program) in the right places, like any or all of:
+ In the EULA displayed at startup and/or stored locally.
+ In the About screen.
+ In the Helpfile.
+ In a seperate donation file.

I stress that this is how I perceive the opinion of many in this group.
No more and no less.

I sensed a somewhat hostile opinion of the program from you, although
I don't see why.

It looks to me that the above perhaps in combination with Karen
apparently being more interested in other aspects of the (un)installing
process attributed to Karen's review.
Please also note that her review was on (my) request.
It is not the case that she on her own initiative posted an unreasonable
critical review, IMO.
I'm just one developer, not a company, wasting my
free time writing software. Developing software is an iterative
process, and InstallSpy is only on stage 2. Ask Microsoft, they
always get their early versions badly wrong :)

I would love it when that were true about Microsoft. :)
 
omega said:
Hi, Sietse. Yes, I took a look.

Thanks very much Karen for taking the trouble to report on request. :)

It's a long time since I last used this sort of program - can't be
bothered to explain ;) - but your very welcome reviews on them made me
realize I should try them again.
Which ones and whether I will try this program I'm trying to find out.

<Snipped the good stuff>

Thanks again.
 
Michael J. Leaver said:
Thanks Steven,

Perhaps in your haste to educate people you didn't clearly read my post.

I know what the shell is, as I indicated clearly in the post. I pointed out
explorer being the shell, and not IE, to not confuse the matter (yes, they
are basically the same thing but if I had said it asked explorer then some
people may have been confused and thought I meant IE etc. etc).

As I already mentioned "If Windows is opening IE and not OB1 then it appears
you have either got something setup wrongly..."

If anyone else is having the problem of IE being opened, instead of your
default browser, please feel free to email me and mention which browser it
is that you are using so that I can investigate further.

Thanks
</snip>

My apologies for the mixup

--

Regards

Steven Burn
Ur I.T. Mate Group
www.it-mate.co.uk

Keeping it FREE!

Disclaimer:
I know I'm probably wrong, I just like taking part ;o)
 
"Michael J. Leaver" <[email protected]>:

[top posting repaired]
omega said:
Michael J. Leaver said:
- Forcibly (?) opening IE and displaying a PayPal graphic. Yes, it opens
your default web browser because the log file is in HTML.

Internet Explorer is not my default web browser, and I don't like to use
it. My default handler for .htm\.html is OB1.

[HKEY_CLASSES_ROOT\htmlfile\shell]
@="ob1"

Your program is reading the incorrect area of the registry. It should look
in that location above for default handler, not for the arbitrary key
name, "open."

Windows is opening IE and not OB1 then it appears you have either got
something setup wrongly, or there is a bug in Windows itself.

My system is set up properly, and there is not Windows bug involved.
When you double-click on an HTML file does Windows open IE or OB1?

OB1, of course! Again, as I posted, OB1 the default handler for htmlfile
on my system, as I posted, and as functional programs know..
[HKEY_CLASSES_ROOT\htmlfile\shell]
@="ob1"

Neither your program, nor, as I see in your later followup, understand how
default actions work in Windows.
 
"Michael J. Leaver" <[email protected]>:

[snip
1]
As I already mentioned "If Windows is opening IE and not OB1 then it appears
you have either got something setup wrongly..."

As I already mentioned, it is your program, and you, who has it wrong.
If anyone else is having the problem of IE being opened, instead of your
default browser, please feel free to email me and mention which browser it
is that you are using so that I can investigate further.

Then you will spread misinformation.

Have you never even interacted with the basic GUI dialog in Windows, for
changing default action? Look at Window's Edit File Type dialog. Under
Actions. What did you think it means, when you hoose one of the actions,
together with Set Default ?

My action list on a filetype can have as many actions as I wish. The Window's
Edit File Type dialog, lets one choose what to select.

Edit File Type

Actions:

view with X
OB1 bold in the dialog, when set to default
open with Z
open does not generally need to even exist, if another action
is set default
Convert to Y

Look at the dialog yourself. Or, here is a picture for you, a different
program, but displays the layout in a similar manner.

http://www.xs4all.nl/~wstudios/Associate/WAssociate_html_action.gif


Setting the default action, it means setting this value:

HKCR\filetype\shell
@= said:
[HKEY_CLASSES_ROOT\htmlfile\shell]
@="ob1"

[HKEY_CLASSES_ROOT\VBSFile\Shell]
@="edit"
[HKEY_CLASSES_ROOT\VBSFile\Shell\Edit\Command]
@="c:\\windows\\Notepad.exe %1"

[Etc.]

You'd be advised to read up what default action means. This is standard
information, easily available. Perhaps start at Microsoft's support site.

http://support.microsoft.com/?kbid=320036

<quote>
This step-by-step article describes how to change the default action for a
file type in Windows XP.

[...]
For some file types, the default action may be undesirable, or even
dangerous. For example, a registry file (.reg) has the default action Merge,
which sends the data in the file to the registry, and replaces existing
registry values or adds to existing registry values. The Edit command is
available on the shortcut menu for a .reg file, but it is not the default
action. If you want the default action for a .reg file to be Edit, and
require that users right-click to view the shortcut menu and deliberately
click Merge, you can change the default action for all .reg files. Similarly,
you may prefer to have the default action for a batch file (.bat) changed to
Edit instead of Open.
If anyone else is having the problem of IE being opened, instead of your
default browser

No one is having that problem. Your progam is having that problem.
 
"Michael J. Leaver" <[email protected]>:

[top posting repaired]
omega said:
Michael J. Leaver said:
- Forcibly (?) opening IE and displaying a PayPal graphic. Yes, it opens
your default web browser because the log file is in HTML.

Internet Explorer is not my default web browser, and I don't like to use
it. My default handler for .htm\.html is OB1.

[HKEY_CLASSES_ROOT\htmlfile\shell]
@="ob1"

Your program is reading the incorrect area of the registry. It should look
in that location above for default handler, not for the arbitrary key
name, "open."

Windows is opening IE and not OB1 then it appears you have either got
something setup wrongly, or there is a bug in Windows itself.

My system is set up properly, and there is no Windows bug involved.
When you double-click on an HTML file does Windows open IE or OB1?

OB1, of course!

Again, as I posted, OB1 is the default handler for htmlfile on my system,
not Internet Explorer, as both Windows, and functional programs, know.
[HKEY_CLASSES_ROOT\htmlfile\shell]
@="ob1"

Neither your program, nor, as I see in your later followup, you, understand
how default actions work in Windows.
 
omega said:
As I already mentioned, it is your program, and you, who has it wrong.

I've already stated many times: I use ShellExecute to ask the Windows shell
to open a file using the configured program for a particular file extension.
The shell then decides which program to open, not the calling program. I
don't need or care what's in the registry: let the operating system worry
about that.

For more info see this page:

http://msdn.microsoft.com/library/d...rm/shell/reference/functions/shellexecute.asp

What possible benefit is there to reading the registry yourself then execute
the program after constructing the command line when you can get the
operating system to do it all for you. That is what it is there for.
Then you will spread misinformation.

What are you talking about? What misinformation?
[rant deleted]

You need to take deep breaths and perhaps have a little rest. There's no
need to get so excited over something as trivial about opening a file.
 
omega said:
My system is set up properly, and there is no Windows bug involved.

Again, as I posted, OB1 is the default handler for htmlfile on my system,
not Internet Explorer, as both Windows, and functional programs, know.
[HKEY_CLASSES_ROOT\htmlfile\shell]
@="ob1"

Neither your program, nor, as I see in your later followup, you, understand
how default actions work in Windows.

I quote from
http://www.mvps.org/vbnet/index.html?code/shell/shellexecute.htm:

"The Windows 95, 98 and NT design guides stress that for an application to
conform to the Windows Logo guidelines, execution of associated applications
must be made using the ShellExecute API and not the CreateProcess API."

InstallSpy uses ShellExecute to open the HTML log file using the associate
application.

So whose wrong? Microsoft or you?

Perhaps you should read more and try to remain calm.
 
Steven Burn said:
When it comes to launching file's, the Shell function and ShellExecute API
read the default launch command from
HKEY_CLASSES_ROOT\.extension\Open\Command and launch the file in the program
that is specified.

For example, if the launch command for the .txt extension is Notepad.exe
then Shell and ShellExecute will look at;

HKEY_CLASSES_ROOT\.txt\Open\Command

Steven, I'm getting knocked offline every few minutes, motel phone line, also
which connects at only 19k, so it's pretty hard to look up references, but I
did manage to retrieve one page. As I truly have trouble believing that MSFT
limis that API method to the Open verb.

<quote>
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/functions/shellexecute.asp

ShellExecute Function

NULL

For systems prior to Microsoft® Windows® 2000, the default verb is used
if it is valid and available in the registry. If not, the "open" verb is
used.

For Windows 2000 and later systems, the default verb is used if
available. If not, the "open" verb is used. If neither verb is available, the
system uses the first verb listed in the registry.

</quote>
 
Steven, I'm getting knocked offline every few minutes, motel phone line, also
which connects at only 19k, so it's pretty hard to look up references, but I
did manage to retrieve one page. As I truly have trouble believing that MSFT
limis that API method to the Open verb.
</snip>

Karen, you are correct in not believing it. The API's will use the Default
function BEFORE they use
the Open function. However, this all depends on how the ShellExecute API is
sent.

For example;

ShellExecute hwnd, "open", "somefile.html", <snipped>

The above specifies the "open" command. As such, this is what it will use
when opening the file/program, and not the Default command (unless no "open"
command is available, in which case, the Default will be used).

--

Regards

Steven Burn
Ur I.T. Mate Group
www.it-mate.co.uk

Keeping it FREE!

Disclaimer:
I know I'm probably wrong, I just like taking part ;o)
 
Michael J. Leaver said:
I've already stated many times: I use ShellExecute to ask the Windows shell
to open a file using the configured program for a particular file extension.
The shell then decides which program to open, not the calling program. I
don't need or care what's in the registry: let the operating system worry
about that.

For more info see this page:

http://msdn.microsoft.com/library/d...rm/shell/reference/functions/shellexecute.asp

Well, that's good, as it's the same chapter I went to, and same page I landed
on after Steven brought up the ShellExecute API.

And right there on that page, it speaks of only looking for the Open verb
if and only if there is not another registered as default.

So there is something wrong in your implementation. Other programs do not
exhibit this problem. Exception might be Outlook, known to always, at least
in earlier version, execute the Open verb, regardless of system settings.
And MS Money, whatever it does.

As to how you're making the call incorrectly, I have no guess; you'd need
to get the advice of programmers.

Perhaps even see if you can get hold of Inctrl5, as it comes with source,
and is Delphi. It could be possibly useful as a guide for trying to see
how that author succeeded in generating installation logs at 1% the time of
InstallSpy.

Second, when Inctrl's report is ready, if one chooses choose html, that'll
display within the program's interface.

From there, one can choose "launch" and the program will launch the DEFAULT
HTML file type handler on the system, OB1 here. Just as does every functional
program.

So find what he is doing correctly, that you are not.
 
Steven Burn said:
Karen, you are correct in not believing it. The API's will use the Default
function BEFORE they use the Open function. However, this all depends on
how the ShellExecute API is sent.

For example;

ShellExecute hwnd, "open", "somefile.html", <snipped>

The above specifies the "open" command. As such, this is what it will use
when opening the file/program, and not the Default command (unless no "open"
command is available, in which case, the Default will be used).

Thank you, Steven, I appreciate your explaining.

It appears to me that this is the area the InstallSpy programmer made his
error. Too bad for him he didn't make a point to be polite to you, in order
to get the help he needed.
 
The call is:

ShellExecute(0, 'open', PChar(fname), nil, nil, SW_SHOWDEFAULT);

where fname is the HTML log file. Note the 'open' verb is being used, not
the default. The filename includes the directory, so no need to specify
that. No need to pass the application handle. No parameters. Opens in the
default window position and size. There is nothing I can see wrong with this
statement that would cause the error.

I'm *genuinely* interested in knowing why this would open IE and not your
configured application. As I said, it works perfectly fine for IE and
Firebird/Mozilla. I have not tested it with OB1 or other browsers.

Thanks
 
Thank you, Steven, I appreciate your explaining.

It appears to me that this is the area the InstallSpy programmer made his
error. Too bad for him he didn't make a point to be polite to you, in order
to get the help he needed.
</snip>

No problem at all Karen ;o)

--

Regards

Steven Burn
Ur I.T. Mate Group
www.it-mate.co.uk

Keeping it FREE!

Disclaimer:
I know I'm probably wrong, I just like taking part ;o)
 
Michael J. Leaver said:
I'm *genuinely* interested in knowing why this would open IE and not your
configured application. As I said, it works perfectly fine for IE and
Firebird/Mozilla. I have not tested it with OB1 or other browsers.

It has _nothing_ to do with which browser.

Apparently for your system, you used Firebird's interface to change handler
of the .html extension, rather than changing the htmlfile registry key, via
the Windows dialog, or otherwise The Firebird wizard changes which filetype
key to associate with the .html extension. What it does comes out similar to
this:

[HKEY_LOCAL_MACHINE\Software\CLASSES\.html]
@="MozillaHTML"

[HKEY_LOCAL_MACHINE\Software\CLASSES\MozillaHTML\shell\
<no default verb set here, so will use "Open" verb>

[HKEY_LOCAL_MACHINE\Software\CLASSES\MozillaHTML\shell\open\command]
@=<path to mozilla>

If you are only testing your program agaist settings like that, you will
have a hard time learning how to execute the DEFAULT HANDLER. In the key
in your registry, you have no special verb set, only Open.

I could create a similar key in my registry, eg "OB1HTML", and point
my .htm and .html entries to it, same as above. And then deliberately
only create the subkey Open, pointing to the OB1 exectutable. However,
I do not want the extra mess. And there is no reason to do so - as all
the programs that I use, different from InstallSpy, they read the default
verb.
The call is:

ShellExecute(0, 'open', PChar(fname), nil, nil, SW_SHOWDEFAULT);

I cannot comment on that; you'd have to ask a programmer about the correct
method.
 
The open command is used, see my other post. This is not the problem.

I've since tested InstallSpy with Opera v7.23 (and already with Firebird and
IE) and I cannot reproduce your problem. Opera, Firebird, and IE pretty much
cover all the popular web browsers on Windows. I cannot test it with every
browser available.

For the final time, I would like to get to the bottom of this error. You
could continue with your tirade (I think we all agreed that InstallSpy is
indeed using the correct method for opening HTML files) or you could email
details (e.g. browser version and where to download) and I will happily
investigate and attempt to fix this issue.
 
Michael,

Sorry, but I do not have interest in spending my time debugging your
program. I wish you the best of luck for it, and hope you keep working
on it. As I said, it has potential as a customizable notifier.
 
Back
Top