CHOCHILAU said:
When I boot, I get a message that "Windows cannot find C

rogram. Make
sure
you typed the name correctly, and then try again." I click on OK and
the boot
process completes. While only annoying, it would be nice if it did not
occur.
You have an invalid or remnant entry in a place used to load programs on
Windows startup. Could be:
Registry:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
(for you login)
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
(for everyone's login)
Startup folder (yours or All Users)
Task Scheduler (look for events scheduled to run on Windows startup or
on login)
There are some other places where a program can be configured to load on
startup but start with these. Of course, you could just use
msconfig.exe to look at the startup programs to notice which one has the
invalid entry of where to find the program to load.
What's likely is that a program neglected to enclose its load string
within double quotes. It contains spaces so parsing ends at the first
space figuring that is the program and the rest are parameters to that
program. So an entry like:
C:\Program Files\someapplication\someprogram someparameters
ends up getting parsed per the space delimiters as:
Program = C:\Program
Parameters = Files\someapplication\someprogram someparameters
It should've been entered as:
"C:\Program Files\someapplication\someprogram" someparameters
Some uninstalls forget to remove these entries or screw it up. Some
cleanup scanners that remove malware screw up removing this entry. Some
programmers for install programs or users entering this stuff forget to
enclose the string identifying the program within double quotes if it
happens to include spaces, or they neglect to use double quotes within a
variable that represents the path to the executable forgetting that the
path might have spaces. If the path to the executable has spaces then
the start string SHOULD be double quoted. However, sometimes the load
works okay without the double quotes, and sometimes it doesn't. Since a
program can be executed without specifying its extension, is
c:\tools\prog setup\inst
supposed to run a program called "prog" with parameters that tell it
where to find an installation path or file under a relative directory,
or was it meant to run the program "inst" and the path to it has the
space in "c:\tools\prog setup\"? In a DOS shell, see what happens when
you run:
dir c:\program files\
without any double quotes. It won't find anything (unless you happen to
have a subdirectory just named "program"). Now run:
dir "c:\program files"
The command interpreter has its defaults on how to guess what might've
been meant by the start string, but do you really want it to be
guessing?
If the entry only has "C:\Program" then it'll take work to figure out
what application was installed but screwed up its start string or what
application got removed and whatever removed it screwed up. However, if
it has "C:\Program Files\..." then you can probably determine what was
supposed to get loaded by this start string and decide if you want to
keep it or not. If you want to keep it, double quote the program
portion of it (i.e., the part that shows the path and file for the
program's executable). If you don't want this program to load, delete
this registry key (you might want to export it in case it really was
needed but had to be repaired by double quoting it command portion).
However, in the case of a registry key that had an unquoted start string
that has spaces in the path to the executable, the typical action is to
open an instance of Explorer that shows that path - *IF* a correct path
were specified. However, it is highly unlikely that you have a path
called C:\Program (you do have a path called "C:\Program Files"). If
you use the Start -> Run menu to enter just C:\Program (be sure to wipe
the " Files" string that it would normally add because it assists the
user by listing matching objects), is that the popup you see?
System32 Folder Opens When Logging on to Windows
http://support.microsoft.com/default.aspx?id=170086
In looking at my Run keys in the registry, I just noticed a couple data
items under those keys that were:
zBrowser Launcher = C:\Program Files\Logitech\iTouch\iTouch.exe
ClipMate6 = C:\Program Files\ClipMate6\ClipMate.exe
Those are bad entries since they should have been double quoted due to
the spaces embedded in the paths to their executables. They load so I
know those run items do work but they really should be double quoted to
ensure the parser knows exactly which part is the fully qualified file
path and which are parameters, if any, to the executable.