There are some icons that I never want to see in the notification area, for instance "safely remove hardware".

How do I filter the icons I can see without the having the "expander arrow" that comes up after a number of icons?

enter image description here

If I enter taskbar settings and I click and toggle "always show all icons in the notification area" to have it off, I will be able to turn off some icons, but then it seems like I have to live with that arrow button.

  • Right click on the Taskbar, choose Unlock. Then you can see the notification icon without the arrow. See if that works.
    – John
    Feb 28 at 18:18
  • There is no unlock, just "lock all taskbars". Mar 2 at 8:05
  • That seems strange. Unlock is just not locked.
    – John
    Mar 2 at 12:16

1 Answer 1


It is possible, but quite complicated for just getting rid of a little character on the traybar. I found this post on a boring day, so here is a solution, requiring some programming using the free AutoHotkey.

A pre-requisite is to enter Taskbar Settings by right-click on the taskbar, click "Select which icons appear on the taskbar" and set to On "Always show all icons in the notification area". You will now remove from the traybar the icons that you don't want to see.

You will need to download the AutoHotkey script TrayIcon.ahk from Github and put it in the same folder as the following scripts. To run a script after installing AutoHotKey, put it in a .ahk file and double-click it to test.

First script will just list all the programs in the traybar. You may press Ctrl+C to copy the displayed text, so you can then copy-paste the exact names of the processes in the next script.

test := TrayIcon_GetInfo()
Loop, % test.MaxIndex()
  str .= test[A_Index].process "`n"
MsgBox, %str%
#Include TrayIcon.ahk

Put the names of the processes whose icons you wish to remove in the following script with a comma as delimiter. Avoid names that may belong to Windows programsn:

remove_array := "Prog1.exe,Prog2.exe,Prog3.exe"
Loop, parse, remove_array, `,
    oIcons := TrayIcon_GetInfo(A_LoopField)
    TrayIcon_Remove(oIcons[1].hwnd, oIcons[1].uid)
#Include TrayIcon.ahk

Most processes owning the icons continue to work in the background. If you wish to return all the removed icons, start Task Manager, kill explorer.exe, then restore it using the menu File > Run new task, enter explorer.exe and click OK.

You may run the second script whenever you wish to reduce that traybar, but the icons will fully return after a reboot.

To have it run automatically on login, place it in the Startup group at
C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup. In this case, you might want to add a small delay before it starts working, by adding at its beginning a Sleep command like this:

Sleep, 2000     ; The time to pause in milliseconds

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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