This is a small tool that was not supposed to be public, but somehow people did manage to find out about it. And once in a while I get requests for it.
So here it is!
Story
A while ago some of the MVP colleagues needed a way to automatically manipulate the Windows taskbar. Simple stuff: hide/show the taskbar, set the “keep on top” option. I don’t remember if showing the “Quick Launch” toolbar was also part of the request, or it was my idea (because my XP sometimes hides the “Quick Launch” after reboot).
Because nobody was able to find out a solution, I decided it is an interesting thing to dig into, and I have managed to put together a small tool doing that.
I have posted it somewhere on my web site, in a non-public place, and deleted it after a short while. End of story. Or this is what I have thought :-)
Why not public?
Because I cannot promise that it will work ok on any system. An because there is something in that code that I don’t like.
To show/hide the “Quick Launch” toolbar I am using the IBandSite
interface. And then I show (or hide) the first band number 10. But I don’t know this is true on all systems! I could compare the band name to “Quick Launch,” but this is also a problem on localized systems.
So for me the code is incomplete, and nothing to make public.
But hey, you ask for it. And in fact it might even work on all systems.
And if you can find a documented way to know for sure that the band I am changing is indeed the “Quick Launch,” I would appreciate if you tell me. And I I will give you credit, then update the tool and the code!
Disclaimers
- I am not responsible if this hides the toolbar, hides your processor, your computer or your house.
- I am not responsible if you take this code and use it in your application to annoy users
- In general, I am irresponsible! :-)
Download
Ok now, there you go:
Good luck!
Yeah, using fixed QUICKLAUNCH_BANDID=10 sure doesn’t work, so need to use EnumBands interface to find “Quick Launch”:
UINT uBand = 0;
DWORD dwBandID;
// Find “Quick Launch” band in a band site
while ((hRez = pBandSite->EnumBands(uBand, &dwBandID)) == S_OK)
{
hRez = pBandSite->QueryBand(uBand, &pBand, &dwOrgState, bufName, _countof(bufName));
if (std::wstring(bufName) == L”Quick Launch”)
break;
uBand++;
}
Thank you, your solution might help someone.
I thought about it, but it kind of goes against what I am doing with this site, because it only works for English :-)