Menu

#204 Support Multiple Desktops

closed
nobody
None
5
2015-04-19
2012-08-17
voidp
No

It would be nice if Classic Shell (CS) worked across multiple desktops.

I was using SysInternals' Desktops when I discovered CS only worked on the first desktop. Desktops uses a Windows desktop object for each desktop and a separate Explorer process runs on each to provide the Taskbar and Start Menu. Thus, I was surprised when CS didn't appear on the extra desktops. I thought it would simply 'hook' Explorer and 'scale'.

Discussion

  • Ivo Beltchev

    Ivo Beltchev - 2012-08-17

    It should work for multiple desktops.
    However it ineeds to be launched for each desktop separately. For the main one you have the Run registry key, or the Startup folder, to automatically start programs on login. But there is no such system AFAIK for secondary desktops. You will need to do that manually.

     
  • xpclient

    xpclient - 2012-08-18

    Tried SysInternals Desktops on Windows 7 and ran ClassicStartMenu.exe. Works. Only thing is glass transparency isn't available on 2nd or additional desktop.

     
  • Ivo Beltchev

    Ivo Beltchev - 2012-08-18

    Does glass not work only for the start menu, or for all other windows?

     
  • xpclient

    xpclient - 2012-08-18

    Sorry I wasn't clear. Glass doesn't work for all windows. But a skin with transparency will do for Classic Shell. :) So no issues.

     
  • voidp

    voidp - 2012-08-25

    Windows signals a "WinSta0_DesktopSwitch" kernel event object each time the desktop is switched. By also using the Win32 APIs for enumerating desktops, you might be able to determine when a new desktop is created and then launch Classic Shell on that desktop! This would be a lot better than configuring a shell hack to launch CS on multiple desktops.

    Here's a simple app that monitors the event:

    include "stdafx.h"

    include <windows.h>

    int _tmain(int argc, _TCHAR* argv[])
    {

    HANDLE h = ::OpenEvent(SYNCHRONIZE, false, _T("WinSta0_DesktopSwitch"));
    
    if (h)
    {
        for (;;)
        {
            ::WaitForSingleObject(h, INFINITE);
    
            _tprintf(_T("desktop switch \n"));
        }
    }
    else
    {
        _tprintf(_T("failed to open WinSta0_DesktopSwitch \n"));
    }
    
    return 0;
    

    }

    A.J.

     
  • xpclient

    xpclient - 2015-04-19

    Starting with Classic Shell 4.2.0, if you use Sysinternals Desktops, on Windows 8 and Windows 10, the Classic Start Menu launches automatically without the 1-minute delay when additional desktops are created.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.