Difficulties invoking Explorer as a shell...

  • Thread starter Thread starter chris.raplee
  • Start date Start date
C

chris.raplee

I've got a problem I'm not entirely certain how to resolve and would
like to put it before you to see if you have any insight on what I'm
doing wrong. I'd like to prevent users of our product from accessing
the explorer shell. Having out application in a Run key accomplishes
this, for the most part, but looks somewhat unprofessional during
startup and shutdown as you can see (and minimally interact with) the
Explorer shell for a small window of time.

Setting our application as the Shell seems to be a perfect solution to
this problem, but there's a side-effect I'm not certain how to handle.
Specifically under certain circumanstances (as by a service engineer)
it is required that we be able to terminate our application and launch
the Explorer shell.

Unfortunately when our application attempts to run explorer.exe it
shows up in "file browser" mode, not as a shell -- no Start menu,
taskbar, etc.

My best searches lead me to believe that two conditions need to be
satisfied to allow Explorer to run as a shell. The first is that no
other instance of Explorer is currently running (this is the case when
I am invoking explorer.exe) and the second is that Explorer is set as
the shell in the registry. Because of the second condition my
application is first setting the HKLM\Software\Microsoft\Windows
NT\Winlogon\Shell value back to explorer, and then invoking explorer.

Unfortunately I am still seeing Explorer start as a filebrowser and not
as a shell. Is there anything else I need to do in order to launch an
explorer shell?
 
Sean,

Unfortunately that doesn't work for our needs. It is expected that our
service engineers will need to handle administrative tasks in the
user-context that out application runs in. The requirement is really
that we be able to start Explorer as a shell when our application
terminates in a certain way (ie: service engineer inputting the service
password).

Do you have any insight on how I can run explorer as a shell?

Chris
 
Sean,

Unfortunately that doesn't work for our needs. It is expected that our
service engineers will need to handle administrative tasks in the
user-context that out application runs in. The requirement is really
that we be able to start Explorer as a shell when our application
terminates in a certain way (ie: service engineer inputting the service
password).

Do you have any insight on how I can run explorer as a shell?
Does invoking explorer twice not work?
 
Invoking explorer twice causes two filebrowser windows to appear. Not
the desired behavior.

Chris
 
This problem has been resolved. For anyone who might be interested I
resolved the problem by putting in a pair of one-second delays. The
first after setting the Shell key to Explorer and the second after
launching explorer before setting the key back to our application.

Chris
 
Back
Top