Start explorer, taskbar missing

G

Guest

Hi,
When I start explorer.exe from registry as the shell, I have a taskbar.

When I start my app as shell, and start explorer.exe from there when going
into so-called "developer mode", an explorer window opens, but no taskbar is
present.
Also, CTRL-ALT-DELETE / Task manager does not work.
Are these 2 things related ?
What is the difference in starting explorer "myself", or as shell ?

I can Hide the taskbar (ShowWindow(SW_HIDE) , but CTRL-ESC still works :-(
A lot is written about starting an app in kiosk mode, but no clear overview
anywhere as far as I have found.

I prefer to start my app as shell, thus avoiding CTRL-ESC and other
hotkey-trouble.
But I do need the Taskbar !

Please help...
Greetings,
Rob.
 
K

KM

Rob,

Yes, those things are related.
At launch time Explorer app checks the Shell reg key. If the Explorer was launched as the shell, it will create the Desktop and
Taskbar and run them as a part of the explorer process.

Task Manager and Gina screen though are not related to Explorer. The key combination for Task Manager is Ctrl+Shift+Esc.
Probably a little bit more info about hiding Taskbar you can find here:
http://km-dev.blogspot.com/2007/03/xpe-tip-6-completely-hide-taskbar.html. With that the Ctrl+Esc shouldn't work.

Any particular reason you need the Taskbar functionality?

A little bit more info about removing Explorer here: http://km-dev.blogspot.com/2007/04/autoplay-without-explorer.html. Not much on
the implementation side is revoked there but just to encourage similar implementations.
 
G

Guest

Hi, You again ;-)

I already found and implemented the article on completely-hiding the
taskbar, but CTRL-ESC still works :-(

So How Do I "create the desktop and launch taskbar" myself , if explorer
doesn't when launched by me ?
I looked for taskman.exe, but it dos not seem to be present (?)

Greetings,
Rob.
 
K

KM

Rob,

Missing the taskman.exe is what I meant by saying the Task Manager issue is not related to Explorer.
You are likely missing the "Task Manager" component from your image.

Best way to get rid of the standard Windows key combinations such as Ctrl+Esc is a keyboard global hook. Or a keyboard driver. When
I did a completely locked down version of OS here (with custom shell) I have done both and it worked like a charm.

Regarding the creating the Desktop. It is undocumented. Unless you want to go a hack way where your shell creates the Desktop in
background, you will have to launch Explorer as the shell.

Also, you haven't explained yet why do you need Desktop and Taskbar for kiosk type of device?
 
G

Guest

Hi,
I added taskman, and have taskman.exe in my system32 folder now....
Unfortunately, when starting it, I still donot see the taskbar.
As mentioned before I do see it when starting explorer.exe as shell.

Is there any sourcecode available on how Explorer starts the taskbar ?
I assume it is some COM object which is created ?

I need the taskbar because of an installed application that is only
acessible from the icon in the lower-right corner on the taskbar.
It is not an option to change that application....



Greetings,
Rob.
 
K

KM

Rob,
Hi,
I added taskman, and have taskman.exe in my system32 folder now....
Unfortunately, when starting it, I still donot see the taskbar.
As mentioned before I do see it when starting explorer.exe as shell.

Ok. Now you confused me.
How is the taskman related to the TaskBar?

Again, the TaskBar is just a feature of Explorer application.
taskman is the implementation for the Task Manager.

Is there any sourcecode available on how Explorer starts the taskbar ?

Of course not. That code must be a part of the OS.
I assume it is some COM object which is created ?

Nope. As far as I can tell it is an internal object implemented within the OS libraries linked staticly to the explorer app.
I need the taskbar because of an installed application that is only
acessible from the icon in the lower-right corner on the taskbar.

You must be referring to the SysTray (XP term is "Notificaiton Area") - another feature of Explorer shell.
It is not an option to change that application....

I understand that.

But how you are going to hide the TaskBar and still provide a way to access the application icon in the SysTray area?
Ok. Assuming you got this covered in your design, here is another idea for that still requires some investigating and programming to
be done first.

We are basically talking about one API here - Shell_NotifyIcon - that is being used by that application to add the icon to SysTray
and be able to receive notifications from shell by user clicks on that icon through the app window proc.
The Shell_NotifyIcon is exported by shell32.dll. Assuming you don't use shell32.dll in your image with the custom shell, you can
create your own version of shell32.dll that will expose (export) that function only. Used as a shim it will give you the full
control over what and when that application is doing in the UI.

Another way, much simpler, is to find out what messages are sent to the app window proc when user clicks on the icon in SysTray or
selects an item on the appropriate menu shown by the left-[right-]click on the SysTray icon. Knowning those messages and thier
parametrs (likely WM_COMMANDs) you can always implement them and send them out from your own shell to the application. This way you
can "remap" all the functions of the applicaiton icon in SysTray to your own UI.
 
G

Guest

Hi,
The taskman was just a desperate try ;-)

That with the messages is a good idea, it just might work.
Unfortunately I won't finish it today, and it is not a very clear solution....

For now, the problem is left open.
Maybe the taskbar program will be changed anyway.
Thanks for all your responses...

Greetings,
Rob.
 

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