Some keyboards have volume controls on them that can be pressed anytime to control the master volume. My keyboard does not have that. Is there a way that I can create a key macro that will work like the volume controls on those keyboards? It should always allow me to control the volume, even if I'm playing a game.

11 Answers 11

I just did this with my laptop. I used AutoHotKey

Here is the script

#PgUp::Send {Volume_Up 1}
#PgDn::Send {Volume_Down 1}

so doing Win+PgUp Win+PgDown changes the master volume. If you prefer Ctrl+PgUp, use ^PgUp::Send.

  1. If you don't have it installed already,
  2. Once installed, right click your Desktop, and choose new AutoHotKey file
  3. Make sure to title the file ending with .ahk (for example, I used "controls.ahk")
  4. Paste the code in from above
  5. Save it, and double click the script in windows explorer

To run it at startup

  1. Use the AHK provided "Convert to exe" utility (or you can right click the file and select "compile script")
  2. Create the .exe in "C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
  • 3
    For followers, note that sending Volume_Up is basically the same as instructing AHK to simulate hitting the volume up button on the keyboard. – rogerdpack Jul 13 '10 at 23:23
  • Completed steps 1-5... No effect under W7 - I just get pagination instead. – Pavel Vlasov May 9 '15 at 17:34
  • 3
    This is cool, it works on win7, and change the step from 3 to 1 would get a better control. – Eric Wang Aug 26 '15 at 2:43
  • 3
    Also works on Win 10 – Hossein A Jun 4 '16 at 5:47
  • tnx for sharing – Boldbayar Jun 24 '16 at 1:05


Win + B





This allows you to interact with the notification icons on the right side of the taskbar using the keyboard. Win + B brings focus to one of the taskbar icons, Left will move focus until you have focus on the volume icon, Enter will open the volume slider up, and PgUp/PgDown moves the slider.

  • 10
    You can also use Up/Down instead of PgUp/PgDown for finer control of the volume. – Kevin Jul 17 '14 at 15:59
  • I can only use Up/Down fwiw. Also, there were some icons in between the one Win + B focuses on and the volume icon requiring more Right presses, but you can drag that to be right next to it. – MSpreij Mar 7 at 13:34

There is a good enough solution that does not require installing additional programs:

  1. Click your start menu and type sndvol in the search box
  2. Create a shortcut on your desktop for it (right-click -> Send to Desktop (create shortcut)
  3. Right-click on the new shortcut and edit Properties
  4. On the Shortcut tab, set the box “shortcut key” to your prefrence. For example: CTRL + ALT + V, and hit OK.

Now you can press your shortcut keys and the volume control box will popup. Then use the UP and DOWN arrows to change the volume, and ESC to close.

Recipe taken form this blog post.

  • 3
    Alternatively, add the shortcut to the taskbar and make sure it is somewhere to the left. The combination Wnd + <n> will launch the n-th application, leftmost = 1. – Roel Spilker Jul 1 '16 at 15:01


provides you a quick and easy way to control the sound volume on your system - simply by rolling the wheel of your wheel mouse.

  • 1
    When I'm in a game and I try to use this, it causes the game to become minimized. – Phenom Dec 12 '09 at 19:38
  • Worked for me. The UI is not particularly intuitive, but Vol+/- worked out of the box (Alt+scroll wheel). To get Mute working with the scroll wheel, I added two rules for Mute: Alt-Ctrl and Left mouse button down, both applied to the Speakers Component with Channel=Mute/Unmute. I also had to change Vol+/- to be Alt+Shift (plain Alt prevented my Alt-Ctrl setup from working with Mute). And yes, "Left mouse button is down" is what made the scroll wheel work for me. Maybe it's mis-mapped? – kghastie Jul 22 '16 at 14:33

NirCmd is an application that changes the volume and more.

Example of use:

  • Increase the system volume by 2000 units (out of 65535)
    nircmd.exe changesysvolume 2000
  • Decrease the system volume by 5000 units (out of 65535)
    nircmd.exe changesysvolume -5000
  • Set the volume to the highest value
    nircmd.exe setsysvolume 65535

You could use it, together with AutoHotkey to invent your own volume keys.

Just found open source software 3RVX which "provides an on-screen display (OSD) for Windows systems. It supports skinnable volume and eject OSDs as well as a range of hotkey controls, tray notifications, and other cool features. Simulates the look and feel of the OS X volume overlay (different skins are available) and you can configure key combinations."

Also available on GitHub

You could use this AutoHotkey macro: Volume On-Screen-Display (OSD) -- by Rajat

The interesting part is here:

SoundSet, +%vol_Step%, Wave
Gosub, vol_ShowBars

SoundSet, -%vol_Step%, Wave
Gosub, vol_ShowBars

SoundSet, +%vol_Step%
Gosub, vol_ShowBars

SoundSet, -%vol_Step%
Gosub, vol_ShowBars

If you modify the script and remove the "Gosub", you can change the volume without the OSD bars.

Try Sound Volume Hotkeys

This tool allows to control sound volume using system-wide hotkeys. Customizable on-screen sound volume indicator will show you the current level.

enter image description here enter image description here

  • 1
    Nice free software, but it's hard-coded to use Ctrl+Arrow Up/Down – Lessan Vaezi Aug 5 '12 at 5:39
  • @LessanVaezi Yes, it is. I dislike that too. – Brian Chavez Aug 7 '12 at 6:23

The best way I fount for manipulating the system volume level on Windows without the need for installing additional software is to use VBScript in one of the following ways:

Toggle muted:

Set WshShell = CreateObject("WScript.Shell")

Increase volume level:

Set WshShell = CreateObject("WScript.Shell")

Decrease volume level:

Set WshShell = CreateObject("WScript.Shell")

Although it's a very old question, I want to report my findings on this topic. I stumbled across an AutoHotKey_L library whilst trying to overwrite my keyboard's Volume_Up and Volume_Down global hotkeys. The purpose was to be able to control master volume while running restrictive, key press consuming fullscreen applications/games (Bethesda's games as an infamous example). The functions are pretty straightforward, so I'll just post a little example:

    newVol := VA_GetMasterVolume() + 5

    newVol := VA_GetMasterVolume() - 5

In principle, this code contains everything you'll need. It overwrites both keys to do the same as before, but instead of relying on the OS to catch the keypress, AHK sets the volume by itself. Of course, you can specify any other hotkey. Since there doesn't seem to be a built-in function to change the volume relatively, you'll have to get the current volume first and then in-/ decrease it at will (here: 5). VA_SetMasterVolume accepts values between 0.0 and 100.0, inclusive.

To get this working in restrictive fullscreen windows, it was sufficient to call the #UseHook directive at the top of my script.


  1. Library download: Vista Audio Control Functions by Lexikos
  2. VA Online documentation

My favorite way of controlling the master volume use the scroll wheel while the cursor is over the taskbar via AutoHotkey:

#If MouseIsOver("ahk_class Shell_TrayWnd")
WheelUp::Send {Volume_Up}     ; Wheel over taskbar: increase/decrease volume.
WheelDown::Send {Volume_Down} ;

See for more details

To make it possible to control the volume wherever the cursor is (while capslock is pressed), you can add the following:

capslock & wheelup::Send {Volume_Up}
capslock & wheeldown::Send {Volume_Down}

Your Answer


By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.