The interaction between AppBars and Windows 10 virtual desktops


A customer had a question about the interaction between Application Desktop Toolbars (commonly known as AppBars) and Windows 10 virtual desktops. "When we create our AppBar, it is shown on all virtual desktops. Is this expected behavior? Can I limit it to only one virtual desktop?"

Yes, this is expected behavior. AppBars modify the work area of the monitor they appear on, and the work area is global across all virtual desktops. As a result, AppBars are also global across all virtual desktops.

Comments (15)
  1. GL says:

    I guess most people do not know the existence (or the name) of such feature since Windows 2000. As an example, in OneNote 2016 for Windows Desktop, click View - New Docked Window to see what an AppBar looks like.

    Also, the name AppBar is also used for the bar of commands that appears on the top/bottom of the windows of WinRT apps.

    Finally, an Application Desktop Toolbar does not show as a thumbnail in Task View.

    1. Yuri Khan says:

      Appbars existed as far back as Windows 98. Or, more precisely, IE4 shell update.

      Dragging a folder from Explorer to the edge of screen would open that folder as a Quick Launch–like appbar.

      1. Gee Law says:

        This reminds me of dragging the Quick Launch or other folders added to the task bar out.

      2. skSdnW says:

        Wrong, SHAppBarMessage exists in Win95.

        IE3 added the rebar/coolbar control the taskbar in IE4+ShellUpdate & Win98 uses to divide the taskbar into deskbars that can also float as separate windows.

        1. GL says:

          Okay guys... I should have said that it existed at least since Windows 2000. The reason I use this timeframe is that this is the documented least supported OS. Pre-NT docs have long retired, I believe. Plus, I've never seen an app done this (except explorer.exe) until I met OneNote.

          1. GL says:

            Well I'm correcting myself again. The first non-explorer thing I know that does this is actually Magnifier.

          2. I can't seem to find it, but I seem to recall either a post or a comment on this blog from a while back saying that all of the MSDN Win32 documentation has been updated to say that functions are available on Windows 2000 or newer, even if they were actually first available on a much more ancient version of Windows.

            I think the rationale was something like they didn't want to have to maintain that information ("was this available in Windows 95 or 98?") that was totally irrelevant for modern purposes.

          3. xcomcmdr says:

            I'd love to have all the pre-NT Win32 and DirectX documentation.
            Especially development guides.

            For people trying to fix old games, it would be a very useful resource.

            Most of the time I use MSDN, but sometimes it isn't enough at all.

        2. Joshua A Schaeffer says:

          The rebar/coolbar was a brilliant idea. If someone else doesn't recreate it as a XAML panel, I will have to. Ribbons are just madness, digging through the tabs makes me forget what I was doing in the first place all the freaking time, and I'm supposed to be one of the smart ones.

  2. GL says:

    Q: Is the Taskbar just an Application Desktop Toolbar created by explorer.exe?

    I guess so.

    1. According to https://www.microsoft.com/msj/archive/S274.aspx, "The shell's taskbar window is a well-known example of an appbar."

  3. GL says:

    Wait a second... An app bar window is not necessarily automatically shown on all virtual desktops. Magnifier's dock window shows up on all virtual desktops, but OneNote docked window does not. However, the region reserved for that window is kept across all virtual desktops.

    1. Sounds like a bug. I suspect OneNote registered an invisible window as an AppBar, and is showing a different window in exactly the same place. So the AppBar is indeed on all virtual desktops. Too bad the AppBar is invisible.

      1. GL says:

        That could be the reason. I also tried something interesting. Wrote a script to register a Console window (managed by csrss, so the registration is inter-process) as AppBar and the Console window did not show up on all virtual desktops. I'm by no means any Win32 programmer, perhaps that has something to do with csrss since it's a high-integrity process, perhaps that has something to do with uiAccess? No idea at this moment.

  4. Kai Schätzl says:

    Of course, you're all wrong ;-) Here's the "real" AppBar: http://www.cs.cornell.edu/mperham/appbar/
    I've been using this great tool since 95.

Comments are closed.

Skip to main content