Possible to change the new "Show Desktop"?

Delfofthebla

New member
I recently added rocketdock/rainmeter to my desktop, and I am liking their features. There's a small problem though - I often use the show desktop feature in windows 7. This hides rocketdock/rainmeter until i open another window, which is a bit annoying. During my internet searching for a fix on this, I came across a post stating just how the show desktop feature works.


Ok, this sounds like a question for a programmer. When you press the "Show Desktop" button in Windows, something dumb happens. The first thing that is done is that any non-topmost windows are minimized. Then, Windows creates a new window (without any borders) that contains a "live display" of your desktop that is for all practicaly purposes, your desktop that you can interact with. Windows then shows you this "live display" over top of your actual desktop until you click on something.

Now, Rocket Dock can detect when it is being minimized and stop it from happening by using some standard code. What it cannot do is detect when Windows creates this special "live display" of your desktop and puts in on top of everything else that is not a topmost window. Rocket Dock is not actually minimized, it is just hidden by the "live display" window.

By using Spy++ and other programming tools, I can see this special "live display" desktop window being created. It is a child window of "Explorer.exe" and does not distinguish itself from other windows otherwise. This makes it very hard to detect when this "live display" window is created. It's process ID and handle changes on every reboot. I have searched high and low and have tried myself to defeat the "Show Desktop" feature but I have not found a way to do it.

For those widgets that stay on the desktop, they probably are hooked into the Explorer shell so that it can get drawn when ever the desktop is drawn. This is fine for widgets but is impractical for regular applications that use regular windows.

However, in previous versions of windows the show desktop was just a shortcut with an icon, you could "create" your own and make it do whatever you wanted. Things such as "minimize all windows", something I'd think most people would prefer it do anyways. And there were tutorials for this, and this fix would be perfect...if I weren't using windows 7.

It's now located in the corner of the taskbar, and I like it there, a lot. I am able to just throw my mouse into the corner and see my desktop. This was useful when I actually had icons on my desktop, but now everything that was located there is in rocketdock, and rocketdock won't show upon clicking the showdesktop button.


The only fix I've really made for this, is to just use the "win+D" hotkey - and have autohotkey emulate a win+M key instead when pressing win+D. This is fine if I am to just use the hotkey, but it would be nice if it were possible to change the button itself too. Is there any type of registry edit that would allow this change?
 

My Computer

OS
Windows 7 Ultimate 64 bit
Having the Rocket dock set to always on top will stop it from disappearing but you probably don't always want it on top, I have mine set to autohide and when you hit show desktop it still pops out afterward, maybe that would be a better work around for you, I didn't realize the problem existed until I read your post but at least for me I have never found it to be a problem.
 

My Computer

Computer Manufacturer/Model Number
Home Brew
OS
Windows 7 Ultimate Vista Ultimate x64
CPU
Core 2 Duo E8500 3.16Ghz @ 3.8Ghz
Motherboard
eVGA 750i FTW
Memory
2x2Gigs Patriot PC2-6400 LL
Graphics Card(s)
Inno3D GeForce GTX260 216 SP
Monitor(s) Displays
ASUS VW222U 22" 2ms Response time
Screen Resolution
1680x1050
Hard Drives
SATA 150GB
SATA II 250GB
USB IDE 750GB Ext.
PSU
HYTEC 600W & Thermaltake 650W Toughpower Power Exp
Case
Thermaltake Armor LCS (Liquid Cooling System)
Cooling
Liquid Cooling System
Keyboard
Logitech G15 Gaming Keyboard
Mouse
Logitech G9 Gaming Mouse
Having the Rocket dock set to always on top will stop it from disappearing but you probably don't always want it on top, I have mine set to autohide and when you hit show desktop it still pops out afterward, maybe that would be a better work around for you, I didn't realize the problem existed until I read your post but at least for me I have never found it to be a problem.

Thanks for the reply GRiM. Odd, but that doesn't actually work for me. Even with autohide on it will not show upon mouseover after clicking show desktop.

While that would definitely be better than nothing, I'd like it much better if I could just get the stupid thing to minimize all windows.

I tried poking around the registry a bit but I couldn't find anything that related to it. :(
 

My Computer

OS
Windows 7 Ultimate 64 bit
Thanks for the reply GRiM. Odd, but that doesn't actually work for me. Even with autohide on it will not show upon mouseover after clicking show desktop.

While that would definitely be better than nothing, I'd like it much better if I could just get the stupid thing to minimize all windows.

I tried poking around the registry a bit but I couldn't find anything that related to it. :(

I'm sure that was working when I tried it last night but it doesn't seem to work now, maybe I had it set to always on top when I was trying it as I just managed to get it to work with that option enabled with the autohide feature, maybe that might be a usable solution for you, you could also increase the autohide delay so it doesn't pop out accidentally.
 

My Computer

Computer Manufacturer/Model Number
Home Brew
OS
Windows 7 Ultimate Vista Ultimate x64
CPU
Core 2 Duo E8500 3.16Ghz @ 3.8Ghz
Motherboard
eVGA 750i FTW
Memory
2x2Gigs Patriot PC2-6400 LL
Graphics Card(s)
Inno3D GeForce GTX260 216 SP
Monitor(s) Displays
ASUS VW222U 22" 2ms Response time
Screen Resolution
1680x1050
Hard Drives
SATA 150GB
SATA II 250GB
USB IDE 750GB Ext.
PSU
HYTEC 600W & Thermaltake 650W Toughpower Power Exp
Case
Thermaltake Armor LCS (Liquid Cooling System)
Cooling
Liquid Cooling System
Keyboard
Logitech G15 Gaming Keyboard
Mouse
Logitech G9 Gaming Mouse
I'm also very interested in solving that problem and got as far as you did.

The "show desktop"-button in the taskbar is a great idea, i'll keep you up to date if I find anything relevant to fixing that problem.
 

My Computer

OS
Windows 7

You may copy the following code to a text editor and save it as "HDD:\Safe_path\***.vbs" then add/drag-n-drop this file into the RocketDock. Then you'll have a button that does "win+M" and "Shift+win+M" successively...
Code:
[FONT=Courier New][COLOR=blue]const[/COLOR][/FONT][FONT=Courier New][COLOR=black] IniFile [B]=[/B] [/COLOR][/FONT][FONT=Courier New][COLOR=gray]"ShowDesktopButton.ini"[/COLOR][/FONT][FONT=Courier New]
[COLOR=blue]Set[/COLOR][COLOR=black] objShell [B]=[/B] wscript.CreateObject[B]([/B][/COLOR][COLOR=gray]"Shell.Application"[/COLOR][B][COLOR=black])[/COLOR][/B]
[COLOR=blue]Set[/COLOR][COLOR=black] objFSO [B]=[/B] CreateObject[B]([/B][/COLOR][COLOR=gray]"Scripting.FileSystemObject"[/COLOR][B][COLOR=black])[/COLOR][/B]
[COLOR=blue]if[/COLOR][COLOR=black] objFSO.fileexists[B]([/B]IniFile[B])[/B] [/COLOR][COLOR=blue]then[/COLOR]
  [COLOR=blue]Set[/COLOR][COLOR=black] objFileToRead [B]=[/B] objFSO.OpenTextFile[B]([/B]IniFile[B],[/B][/COLOR][B][COLOR=red]1[/COLOR][/B][B][COLOR=black],[/COLOR][/B][COLOR=blue]true[/COLOR][B][COLOR=black])[/COLOR][/B]
  [COLOR=black]strFileText [B]=[/B] objFileToRead.ReadAll[B]()[/B][/COLOR]
  [COLOR=black]objFileToRead.Close[/COLOR]
  [COLOR=blue]Set[/COLOR][COLOR=black] objFileToRead [B]=[/B] [/COLOR][COLOR=blue]Nothing[/COLOR]
  [COLOR=blue]Set[/COLOR][COLOR=black] objFileToWrite [B]=[/B] objFSO.OpenTextFile[B]([/B]IniFile[B],[/B][/COLOR][B][COLOR=red]2[/COLOR][/B][B][COLOR=black],[/COLOR][/B][COLOR=blue]false[/COLOR][B][COLOR=black])[/COLOR][/B]
  [COLOR=blue]if[/COLOR][COLOR=black] strFileText [B]=[/B] [/COLOR][B][COLOR=red]1 [/COLOR][/B][COLOR=blue]Then[/COLOR]
  [COLOR=black]    objFileToWrite.Write[B]([/B][/COLOR][COLOR=gray]"0"[/COLOR][B][COLOR=black])[/COLOR][/B]
  [COLOR=black]    objShell.MinimizeAll[/COLOR]
  [COLOR=blue]Else[/COLOR]
  [COLOR=black]    objFileToWrite.Write[B]([/B][/COLOR][COLOR=gray]"1"[/COLOR][B][COLOR=black])[/COLOR][/B]
  [COLOR=black]    objShell.UndoMinimizeAll[/COLOR]
  [COLOR=blue]end[/COLOR][COLOR=blue]if[/COLOR]
  [COLOR=black]objFileToWrite.Close[/COLOR]
  [COLOR=blue]Set[/COLOR][COLOR=black] objFileToWrite [B]=[/B] [/COLOR][COLOR=blue]Nothing[/COLOR]
[COLOR=blue]Else[/COLOR]
  [COLOR=blue]Set[/COLOR][COLOR=black] objFileToWrite [B]=[/B] objFSO.OpenTextFile[B]([/B]IniFile[B],[/B][/COLOR][B][COLOR=red]2[/COLOR][/B][B][COLOR=black],[/COLOR][/B][COLOR=blue]true[/COLOR][B][COLOR=black])[/COLOR][/B]
  [COLOR=black]objFileToWrite.Write[B]([/B][/COLOR][COLOR=gray]"1"[/COLOR][B][COLOR=black])[/COLOR][/B]
  [COLOR=black]objFileToWrite.Close[/COLOR]
  [COLOR=blue]Set[/COLOR][COLOR=black] objFileToWrite [B]=[/B] [/COLOR][COLOR=blue]Nothing[/COLOR]
[COLOR=blue]end[/COLOR][COLOR=blue]if[/COLOR]
[COLOR=blue]Set[/COLOR][COLOR=black] objFSO [B]=[/B] [/COLOR][COLOR=blue]Nothing[/COLOR]
[COLOR=blue]Set[/COLOR][COLOR=black] objShell [B]=[/B] [/COLOR][COLOR=blue]Nothing[/COLOR][/FONT]
Cheers,
hacışakir
 

My Computer

Computer type
PC/Desktop
OS
Windows 7 Home Premium x64
Back
Top