laker
25th January 2005 20:16 UTC
BgImage and taskbar: how to hide?
Hello,
I'm trying to use BgImage plugin to change the background of my installer. Unfortunately it seems that my BgImage plugins can't write over my taskbar and so the final result is very bad.
I've read some old thread and say that it's possible to hide or write over the taskbar ... unfortuantely is not happening on my PC.
What is wrong?
Is my PC drunk? or it's a known problem?
I'm just trying standard BgImage example on the latest NSIS 2.04 release and my PC has Win2k (taskbar is normal and without auto-hide).
Many thanks,
laker
26th January 2005 16:06 UTC
Auto answer :)
I've checked on another computer with Windows XP and sometimes the taskbar get hidden (sometimes not).
So, I've slightly modified the source code of BgImage.cpp to hide the taskbar in any case.
Here attached the source code modified.
Somebody to check this? suggestions?
Taskbar hidden when calling SetBg, restored when calling Destroy.
Many Thanks,
Takhir
26th January 2005 20:05 UTC
This works till installer works correct, on any error user can suddenly find his desktop without (hidden) task bar. SHAppBarMessage with ABM_SETAUTOHIDEBAR or ABM_SETSTATE is also a possible way, and on installer crash user can restore alwaysontop task bar mode from autohide (but VS 7 headers says, this may also fails). google finds few ABM_SETAUTOHIDEBAR code samples. SystemParametersInfo SPI_GETWORKAREA can give screen rect for any case.
laker
30th January 2005 08:53 UTC
Many thanks for your answer ;)
I've found that:
http://www.experts-exchange.com/Prog..._20140981.html
Unfortunately is not possibile to turn Auto Hide on and off. That's because windows task bar is a system process and it's locked to this.
So, there is no way ... I've tried and it's not working.
The only solution is to work in my direction (hiding the taskbar window).
Question:
There is a way to get a callback when the installer crashes or quits without calling .onGUIEnd?
:-)
I think not ... but ... who knows ...
Takhir
30th January 2005 09:45 UTC
Yes, I tested ABM_SETAUTOHIDEBAR too - not wokrs with system task bar :(
To work with SW_HIDE/SHOW you should also track focus lost and window minimize events.
laker
31st January 2005 15:43 UTC
Many thanks,
Now I've hooked minimize, maximize and focus lost messages. You can switch application with ALT+TAB without problem even if some popup appears. It seems to be the best solution.
The only problem is when the installer for some reason crashes, the user will not have anymore a taskbar :) but after a reboot everything will be back in the original state ;)