RyanTAdams.com

Technology Advice by Ryan Taylor Adams

Hide the “Safely Remove Hardware” Icon From the System Tray

October 27th, 2008 · 4 Comments · Printer Friendly Version

WARNING! THIS POST IS MORE THAN 180 DAYS OLD!

While I make an effort to update older posts to keep them relevant and technically accurate, the rapidly changing nature of the tech world makes it possible that the content of this post may no longer be relevant, current, or even accurate. Additionally, because of this post's age, adding new comments has been disabled. If you would like to contribute new information to this post, or have questions pertaining to this post, please use the Contact Form.


The “Safely Remove Hardware” icon was included with Windows XP and Vista to provide a “safe” way to disconnect removable devices. According to Microsoft, you are supposed to use this icon, instead of just unplugging your removable devices (such as USB flash drives, eSATA drives, etc.). Realistically, as long as the device isn’t being written too, you can usually just yank it out.

The “Safely Remove Hardware” icon seems to annoy people who either know not to unplug a device while it is in use, or have “removable” devices that stay permanently attached to their computer. Using the program below, you can effectively remove the “Safely Remove Hardware” icon from your system tray.


  1. Download this file to a convenient location (such as your desktop).
  2. Go to your download location, and double-click on “HideSRHi.exe”.
  3. The “Safely Remove Hardware” icon should disappear from your system tray shortly after performing step 2.
  4. Delete the “HideSRHi.exe” from your download location.

If you ever want the icon back, you can remove the “hidesrhi.exe” entry from your start-up group. I would recommend using a program such as this: //blog.ryantadams.com/2007/12/10/startup-control-panel/ 

Thanks to Len Norris for his help with this problem.

If you found this post helpful, please consider making a donation to help cover the costs of this site:
















4 responses so far ↓

  • 1 Mark Jepson // Dec 9, 2008 at 6:48 PM


    WOW! Thanks

    good karma to follow you always!

  • 2 Jeannie // Jan 27, 2009 at 5:06 PM


    was so excited to find this, installed, after next reboot, got taskbar not found.

    ??
    XP Pro machine, much thanks!

  • 3 Ryan Adams // Jan 27, 2009 at 6:20 PM


    @Jeannie: I too have had that happen. It occurs when the program attempts to remove the icon before Windows has finished loading the taskbar. In my case, it only happens once every 50 boots or so.

    You could disable the startup item for hidesrhi.exe and instead use Windows task scheduler to run the program 15 seconds after you login.

  • 4 essbebe // Mar 6, 2009 at 7:03 AM


    Access to the data has been denied!
    Warning: A virus or unwanted program has been found in the HTTP Data.

    Requested URL: //blog.ryantadams.com/wp-content/uploads/hidesrhi.exe
    Information: Is the TR/Agent.56197.A Trojan

    Generated by AntiVir WebGuard 8.0.15.0, AVE 8.2.0.100, VDF 7.1.2.127

  • 5 Ryan Adams // Mar 6, 2009 at 9:09 AM


    @essbebe: I have checked the file myself with several AV programs and it is not infected. I believe you are getting a false positive because the nature of the program is to alter the system in such a way as to hide a system icon.

    You don’t have to take my word for it though, here is the source code of the file:

    ************************************************************

    .386
    .model flat, stdcall
    option casemap :none

    include ..\include\windows.inc
    include ..\include\user32.inc
    include ..\include\kernel32.inc
    include ..\include\shell32.inc

    includelib ..\lib\kernel32.lib
    includelib ..\lib\user32.lib
    includelib ..\lib\shell32.lib

    main PROTO

    .data
    sClass db “SystemTray_Main”,0

    .code

    start:
    invoke main

    main proc

    LOCAL data :NOTIFYICONDATA

    invoke FindWindow, ADDR sClass, NULL
    cmp eax, 0
    je notfound
    push eax
    invoke RtlZeroMemory, ADDR data, sizeof NOTIFYICONDATA
    mov data.cbSize, sizeof NOTIFYICONDATA
    pop eax
    mov data.hwnd, eax
    mov data.uID, 1226
    invoke Shell_NotifyIcon, NIM_DELETE, ADDR data
    ret

    notfound:
    invoke ExitProcess, 0
    ret

    main endp

    end start

    *********************************************************

  • 6 Jeannie // Mar 6, 2009 at 4:37 PM


    yup I agree, is NOT infected.

    run over to
    jotti.org and test it yourself essbebe :)