Difficulties invoking Explorer as a shell...

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?
 
C

chris.raplee

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
 
A

Adora Belle Dearheart

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?
 
C

chris.raplee

Invoking explorer twice causes two filebrowser windows to appear. Not
the desired behavior.

Chris
 
C

chris.raplee

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top