Search code examples
windowswinapiwindows-8windows-runtimewindows-8.1

How to replace Windows 8 volume indicator overlay?


New to Windows 8 and 8.1 is a volume overlay that sits above all other windows, and displays for 3-5 seconds every time you press one of the special volume buttons present on many keyboards.

Please note that I am not talking about this:

enter image description here

But rather this:

enter image description here

Which appears in the top left corner of the monitor.

I would like an API or something that will disable the display of this indicator when volume buttons are pressed on the keyboard.

Does something like this exist? Programming language doesn't matter, as I can convert from whatever to whatever, but for reference I will be implementing this in C++


Solution

  • There is not a documented method for disabling the UI, and I'd expect that any technique for doing so would rely on potentially risky/unsupported APIs/techniques.

    The UI is now provided by Microsoft to enable a standardized experience for volume control across all devices. Some applications like the Microsoft Music application expect the volume control to be present so that they appear together.

    In Win 8.1, all Media handling support was moved to the SystemMediaTransportControls. An app has only a tiny bit of control over display: IsEnabled.

    If possible, you might consider relying on the built in support -- as they're not likely to go away, and it's unlikely that you'll be able to control them in the manner you want.