Also see my other post about command list solutions which might be better for you.
I assume you are comfortable with scripting and using the help. If not, this is probably not going to work for you. Please review and test the script to make sure you are happy with it.
Your post said "thumbnails". This script shows icons of exe, not thumbnails of its current screen. It is not possible to do screen images with PPro functions (although you can possibly do it with dll plugin and win32 api).
Here is how the script works:
1. You put the script in a file in your script folders called desk.txt (or desk.powerpro).
2. You create a hot key with the command ***@to(win.handle("under")). This minimizes the window under mouse to desktop. Use "active" instead of "under" if you prefer to minimize foreground window regardless of mouse location.
3. The to function in the script creates the shortcut and mimimizes/hides the window.
4. The shortcut runs the from function in the script which restores the windows and deletes the shortcut.
It has limitations. One is that may fail if there are two instances of same program with same caption. To fix this, possibly you could include handle in .lnk name, through this would make caption for shortcut ugly.
It only handles one window at a time. To min/hide all to desktop, you'd need to change the recommended hot key to loop on win.handlelist and pass each handle to the script. To show all, you'd need to go through the shortcuts on the desktop using eg file.listfiles and pick out the ones you created, possibly by using some kind of naming convention for the file names you create. For example, you could prefix each file name by _minned_ which is unlikely to be used in a standard shortcut.
After you have tested and are satisfied, you may want to change win.minimize to win.hide.
Function to(hwnd)
if (not win.exists(hwnd)) do
MessageBox ("ok", "Window does not exist: "++hwnd, "Todesk error")
return
endif
local deskpath = file.getsystemfolder("desktop")
local inexename = win.exename(hwnd)
local cap = hwnd.caption[0,20].replacechars(":?*\\/.| ")
local outpath = deskpath ++ "\\" ++ inexename ++ " - " ++ cap ++ ".lnk"
local cmd = ?-C:\Program Files (x86)\PowerPro\Powerpro.exe-
local params = "***@from(" ++ hwnd ++ ?-,"- ++inexename++ ?-")-
//win.debug(outpath, hwnd.caption[0,20])
//win.debug( cmd, params, hwnd.exepath)
if (file.createshortcut(cmd,outpath, hwnd.caption[0,20], params, hwnd.exepath,0)) do
win.minimize(hwnd) // *** change to win.hide when satisfied with script
else
MessageBox ("ok", "Shortcut failed\n"++outpath, "Todesk error")
endif
return
Function from(hwnd, exename)
//win.debug("fromdesk", hwnd, exename)
win.show(hwnd)
local deskpath = file.getsystemfolder("desktop")
//win.debug("delete: ", deskpath ++ "\\"++ exename ++ ".lnk")
file.delete(deskpath ++ "\\"++ exename ++ ".lnk")
return