Solved Need HD getting full alert


So far everything looks perfect for my needs. I like the 50,100,200,500 settings. A minor tweak would be to let me set a limit of 100 gig for a 2nd HD and for a 3rd HD 50 gig. I have my backup HD set at 200 for now and am copying some files to it to push it below 200 gig. I like the alert window better also - a very non intrusive small window on the far right bottom. I like the way it stays on until I turn it off and when i reboot it comes back on.

Super job!
 

My Computers

System One System Two

  • OS
    WIN 11 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    Custom built - WIN 11 PRO 64-bit ,
    CPU
    Intel(R) Core(TM) i5-14400 2.50 Ghz,
    Motherboard
    ACER Z790 motherboard
    Memory
    32 Gigs
    Hard Drives
    256 gig M2 SSD boot HD, 3 internal HD's, 2 USB
  • Operating System
    Win 10 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    CUSTOM
    CPU
    Haswell CPU 4790k @ 4.4GHz,
    Motherboard
    AsRock Z97 motherboard,
    Memory
    16 Gigs
    Hard Drives
    OS drive 250GB SSD,
So far everything looks perfect for my needs. I like the 50,100,200,500 settings. A minor tweak would be to let me set a limit of 100 gig for a 2nd HD and for a 3rd HD 50 gig. I have my backup HD set at 200 for now and am copying some files to it to push it below 200 gig. I like the alert window better also - a very non intrusive small window on the far right bottom. I like the way it stays on until I turn it off and when i reboot it comes back on.

Super job!
i'll play with adding individual thresholds for each drive in a bit. using windhawk to create a liquidglass start menu/taskbar and broke a component :ffs: time to restore lol
 

My Computer

System One

  • OS
    Windows 11 Pro
I have a 14TB backup USB HD, I want to get an alert when it's only has about 200 GIGS of space left so I can delete some files. I got Space Patrol and so far it's not giving me the notice At 500 GIGS free space left. Has anyone used this PRG or has another recommendation?
Hard Disk Sentinel will do this but it's not free. I've used it for years.

 

My Computer

System One

  • OS
    Windows 11 Professional 25H2
    Computer type
    PC/Desktop
    Manufacturer/Model
    Digital Storm VELOX
    CPU
    Intel Core i9 11900K
    Motherboard
    ASUS PRIME Z590-P
    Memory
    64GB
    Graphics Card(s)
    NVIDIA GeForce GTX 1650
    Sound Card
    Realtek onboard
    Monitor(s) Displays
    Acer R221Q 21.5"
    Screen Resolution
    1920 x 1080
    Hard Drives
    2 x Samsung SSD 990 EVO Plus (1 TB)
    2 x Seagate ST4000NE001 (4 TB)
    PSU
    None
    Case
    VELOX
    Cooling
    Cooler Master
    Keyboard
    Logitech
    Mouse
    Kensington trackball
    Browser
    Firefox, Chrome
    Antivirus
    Windows Defender, Malwarebytes
After it went to 184 gig on my G drive which I have set to 200 gig. The alert didn't come on until I rebooted and restarted your EXE file. Then the alert popped up. I'm trying to figure out how to set your EXE as a startup item.
 

My Computers

System One System Two

  • OS
    WIN 11 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    Custom built - WIN 11 PRO 64-bit ,
    CPU
    Intel(R) Core(TM) i5-14400 2.50 Ghz,
    Motherboard
    ACER Z790 motherboard
    Memory
    32 Gigs
    Hard Drives
    256 gig M2 SSD boot HD, 3 internal HD's, 2 USB
  • Operating System
    Win 10 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    CUSTOM
    CPU
    Haswell CPU 4790k @ 4.4GHz,
    Motherboard
    AsRock Z97 motherboard,
    Memory
    16 Gigs
    Hard Drives
    OS drive 250GB SSD,
My 14Tb HD has 525 free space and the alert keeps coming on incorrectly for less than 200 gigs. I close the alert and then after a while it turns back on.
 
Last edited:

My Computers

System One System Two

  • OS
    WIN 11 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    Custom built - WIN 11 PRO 64-bit ,
    CPU
    Intel(R) Core(TM) i5-14400 2.50 Ghz,
    Motherboard
    ACER Z790 motherboard
    Memory
    32 Gigs
    Hard Drives
    256 gig M2 SSD boot HD, 3 internal HD's, 2 USB
  • Operating System
    Win 10 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    CUSTOM
    CPU
    Haswell CPU 4790k @ 4.4GHz,
    Motherboard
    AsRock Z97 motherboard,
    Memory
    16 Gigs
    Hard Drives
    OS drive 250GB SSD,
Where is the Shell:Startup directory.?
 

My Computers

System One System Two

  • OS
    WIN 11 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    Custom built - WIN 11 PRO 64-bit ,
    CPU
    Intel(R) Core(TM) i5-14400 2.50 Ghz,
    Motherboard
    ACER Z790 motherboard
    Memory
    32 Gigs
    Hard Drives
    256 gig M2 SSD boot HD, 3 internal HD's, 2 USB
  • Operating System
    Win 10 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    CUSTOM
    CPU
    Haswell CPU 4790k @ 4.4GHz,
    Motherboard
    AsRock Z97 motherboard,
    Memory
    16 Gigs
    Hard Drives
    OS drive 250GB SSD,
My 14Tb HD has 525 free space and the alert keeps coming on incorrectly for less than 200 gigs. I close the alert and then after a while it turns back on.
i cant replicate this. i'll try some other methods but cannot troubleshoot it until i can replicate it

Where is the Shell:Startup directory.?
in file explorer address bar just type that and press enter, or win+r to open run box and type it and press enter
 

My Computer

System One

  • OS
    Windows 11 Pro
Is there some reason you can't just look at it in Disk Management?
When it says 1.5% free space (a bit over 200GB), or less... it's time to delete some files.

Or just a quick glance in File Explorer where it will show you how much space is left. I do that all the time.
 

My Computers

System One System Two

  • OS
    Windows 11 Pro 25H2 build: (26200.7623)
    Computer type
    Laptop
    Manufacturer/Model
    Microsoft Surface Pro
    Memory
    32GB
  • Operating System
    Microsoft 25H2 Pro
    Computer type
    Laptop
    Manufacturer/Model
    Dell Pro 14 - PC14250
    CPU
    Intel Core Ultra 7
    Memory
    64GB
    Graphics card(s)
    Intel Integrated Graphics
    Hard Drives
    Micron 1TB SSD
I've done extensive testing today. I have 7 HD's connected, 3 are USB. Everything is working perfectly now. I now have the correct shortcut in my Startup folder. I added 4 HD's to the list and set it at 50 gigs. The correct alerts came up. I tried 100 gigs then 200 gigs all has worked fine. It started with the 1 minute interval, then 5 min. I now have 2 HDs monitored. Part of my problem, may have been when I put the shortcut in my startup folder it was the wrong one. I fixed it today.

Thanks for this excellent solution
 
Last edited:

My Computers

System One System Two

  • OS
    WIN 11 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    Custom built - WIN 11 PRO 64-bit ,
    CPU
    Intel(R) Core(TM) i5-14400 2.50 Ghz,
    Motherboard
    ACER Z790 motherboard
    Memory
    32 Gigs
    Hard Drives
    256 gig M2 SSD boot HD, 3 internal HD's, 2 USB
  • Operating System
    Win 10 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    CUSTOM
    CPU
    Haswell CPU 4790k @ 4.4GHz,
    Motherboard
    AsRock Z97 motherboard,
    Memory
    16 Gigs
    Hard Drives
    OS drive 250GB SSD,
I did a few reboots with it set at 100 gig and everytime it returns to 200 gig, your initial default setting
 

My Computers

System One System Two

  • OS
    WIN 11 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    Custom built - WIN 11 PRO 64-bit ,
    CPU
    Intel(R) Core(TM) i5-14400 2.50 Ghz,
    Motherboard
    ACER Z790 motherboard
    Memory
    32 Gigs
    Hard Drives
    256 gig M2 SSD boot HD, 3 internal HD's, 2 USB
  • Operating System
    Win 10 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    CUSTOM
    CPU
    Haswell CPU 4790k @ 4.4GHz,
    Motherboard
    AsRock Z97 motherboard,
    Memory
    16 Gigs
    Hard Drives
    OS drive 250GB SSD,
dacrone, Here's where I put the shortcut C:\Users\name\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\HDD_LowDsk_Monitor_Notifier_MsgBox.exe

I keep chianging it to 100 gig and upon reboot it reverts back to 200 gig. Can you confirm this on your end?
 

My Computers

System One System Two

  • OS
    WIN 11 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    Custom built - WIN 11 PRO 64-bit ,
    CPU
    Intel(R) Core(TM) i5-14400 2.50 Ghz,
    Motherboard
    ACER Z790 motherboard
    Memory
    32 Gigs
    Hard Drives
    256 gig M2 SSD boot HD, 3 internal HD's, 2 USB
  • Operating System
    Win 10 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    CUSTOM
    CPU
    Haswell CPU 4790k @ 4.4GHz,
    Motherboard
    AsRock Z97 motherboard,
    Memory
    16 Gigs
    Hard Drives
    OS drive 250GB SSD,
dacrone, Here's where I put the shortcut C:\Users\name\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\HDD_LowDsk_Monitor_Notifier_MsgBox.exe

I keep chianging it to 100 gig and upon reboot it reverts back to 200 gig. Can you confirm this on your end?
try this:

Code:
#Persistent
#SingleInstance Force
Menu, Tray, Icon, %A_WinDir%\System32\shell32.dll, 54

monitoring := true
alertedDrives := {}

spaceThreshold := 200
currentThreshold := "200 GB"

checkInterval := 300000
currentInterval := "5 Minutes"

; --- CONFIG ---
configDir := A_AppData "\HDD_Monitor_AHK"
configFile := configDir "\config.ini"

If !FileExist(configFile)
{
    IniWrite, C:, %configFile%, Drives, Drive1
    IniWrite, D:, %configFile%, Drives, Drive2

    ; Save defaults
    IniWrite, 200, %configFile%, Settings, Threshold
    IniWrite, 300000, %configFile%, Settings, Interval
}

; Load threshold
IniRead, spaceThreshold, %configFile%, Settings, Threshold, 200

if (spaceThreshold = 50)
    currentThreshold := "50 GB"
else if (spaceThreshold = 100)
    currentThreshold := "100 GB"
else if (spaceThreshold = 200)
    currentThreshold := "200 GB"
else if (spaceThreshold = 500)
    currentThreshold := "500 GB"

; Load interval
IniRead, checkInterval, %configFile%, Settings, Interval, 300000

if (checkInterval = 60000)
    currentInterval := "1 Minute"
else if (checkInterval = 300000)
    currentInterval := "5 Minutes"
else if (checkInterval = 600000)
    currentInterval := "10 Minutes"
else if (checkInterval = 900000)
    currentInterval := "15 Minutes"
else if (checkInterval = 1200000)
    currentInterval := "20 Minutes"
else if (checkInterval = 1500000)
    currentInterval := "25 Minutes"
else if (checkInterval = 1800000)
    currentInterval := "30 Minutes"
else if (checkInterval = 3600000)
    currentInterval := "1 Hour"
else if (checkInterval = 7200000)
    currentInterval := "2 Hours"
else if (checkInterval = 18000000)
    currentInterval := "5 Hours"
else if (checkInterval = 43200000)
    currentInterval := "12 Hours"

; ---------------------------
; INTERVAL MENU
; ---------------------------
Menu, IntervalMenu, Add, 1 Minute, SetInterval
Menu, IntervalMenu, Add, 5 Minutes, SetInterval
Menu, IntervalMenu, Add, 10 Minutes, SetInterval
Menu, IntervalMenu, Add, 15 Minutes, SetInterval
Menu, IntervalMenu, Add, 20 Minutes, SetInterval
Menu, IntervalMenu, Add, 25 Minutes, SetInterval
Menu, IntervalMenu, Add, 30 Minutes, SetInterval
Menu, IntervalMenu, Add
Menu, IntervalMenu, Add, 1 Hour, SetInterval
Menu, IntervalMenu, Add, 2 Hours, SetInterval
Menu, IntervalMenu, Add, 5 Hours, SetInterval
Menu, IntervalMenu, Add, 12 Hours, SetInterval

; Default checkmark
Menu, IntervalMenu, Check, %currentInterval%

; ---------------------------
; THRESHOLD MENU
; ---------------------------
Menu, ThresholdMenu, Add, 50 GB, SetThreshold
Menu, ThresholdMenu, Add, 100 GB, SetThreshold
Menu, ThresholdMenu, Add, 200 GB, SetThreshold
Menu, ThresholdMenu, Add, 500 GB, SetThreshold

; Default checkmark
Menu, ThresholdMenu, Check, %currentThreshold%

; ---------------------------
; TRAY MENU
; ---------------------------
Menu, Tray, NoStandard
Menu, Tray, Add, Manage Monitored Drives, ManageDrives
Menu, Tray, Add, Pause Monitoring, ToggleMonitoring
Menu, Tray, Add
Menu, Tray, Add, Check Interval, :IntervalMenu
Menu, Tray, Add, Low Space Threshold, :ThresholdMenu
Menu, Tray, Add
Menu, Tray, Add, Exit, ExitApp

SetTimer, CheckSpace, %checkInterval%
return

; ---------------------------
; MAIN CHECK
; ---------------------------
CheckSpace(force := false)
{
    global alertedDrives, spaceThreshold

    drives := LoadDrives()

    for index, drive in drives
    {
        ; --- Get free space in KB ---
        DriveSpaceFree, freeKB, %drive%
        if ErrorLevel
            continue  ; skip if the drive doesn't exist

        ; --- Convert KB → GB and round ---
        freeGB := Round(freeKB / 1024 / 1024, 1)  ; 1 decimal place

        ; --- Check against threshold ---
        if (freeGB <= spaceThreshold)
        {
            ; Only alert once per drive unless forced
            if (force || !alertedDrives.HasKey(drive))
            {
                alertedDrives[drive] := true

                MsgBox, 48, Low Disk Space Warning, % "Drive " drive " has low free space:`n`n" freeGB " GB remaining (`< " spaceThreshold " GB threshold)."
            }
        }
        else
        {
            ; Reset alert if space is now above threshold
            alertedDrives.Delete(drive)
        }
    }
}

; ---------------------------
; SET INTERVAL
; ---------------------------
SetInterval:
    global checkInterval, monitoring, currentInterval
    selected := A_ThisMenuItem
    currentInterval := selected

    ; reset checkmarks
    Menu, IntervalMenu, Uncheck, 1 Minute
    Menu, IntervalMenu, Uncheck, 5 Minutes
    Menu, IntervalMenu, Uncheck, 10 Minutes
    Menu, IntervalMenu, Uncheck, 15 Minutes
    Menu, IntervalMenu, Uncheck, 20 Minutes
    Menu, IntervalMenu, Uncheck, 25 Minutes
    Menu, IntervalMenu, Uncheck, 30 Minutes
    Menu, IntervalMenu, Uncheck, 1 Hour
    Menu, IntervalMenu, Uncheck, 2 Hours
    Menu, IntervalMenu, Uncheck, 5 Hours
    Menu, IntervalMenu, Uncheck, 12 Hours

    Menu, IntervalMenu, Check, %selected%

    ; map interval
    if (selected = "1 Minute")
        checkInterval := 60000
    else if (selected = "5 Minutes")
        checkInterval := 300000
    else if (selected = "10 Minutes")
        checkInterval := 600000
    else if (selected = "15 Minutes")
        checkInterval := 900000
    else if (selected = "20 Minutes")
        checkInterval := 1200000
    else if (selected = "25 Minutes")
        checkInterval := 1500000
    else if (selected = "30 Minutes")
        checkInterval := 1800000
    else if (selected = "1 Hour")
        checkInterval := 3600000
    else if (selected = "2 Hours")
        checkInterval := 7200000
    else if (selected = "5 Hours")
        checkInterval := 18000000
    else if (selected = "12 Hours")
        checkInterval := 43200000

    IniWrite, %checkInterval%, %configFile%, Settings, Interval

    ; restart timer only
    if (monitoring)
    {
        SetTimer, CheckSpace, Off
        SetTimer, CheckSpace, %checkInterval%
    }

    TrayTip, HDD Monitor, Interval set to %selected%, 3
return

; ---------------------------
; SET THRESHOLD
; ---------------------------
SetThreshold:
    global spaceThreshold, currentThreshold

    selected := A_ThisMenuItem
    currentThreshold := selected

    ; clear checks
    Menu, ThresholdMenu, Uncheck, 50 GB
    Menu, ThresholdMenu, Uncheck, 100 GB
    Menu, ThresholdMenu, Uncheck, 200 GB
    Menu, ThresholdMenu, Uncheck, 500 GB

    Menu, ThresholdMenu, Check, %selected%

    if (selected = "50 GB")
        spaceThreshold := 50
    else if (selected = "100 GB")
        spaceThreshold := 100
    else if (selected = "200 GB")
        spaceThreshold := 200
    else if (selected = "500 GB")
        spaceThreshold := 500

    IniWrite, %spaceThreshold%, %configFile%, Settings, Threshold

    TrayTip, HDD Monitor, Threshold set to %spaceThreshold% GB, 3
return

; ---------------------------
; LOAD DRIVES
; ---------------------------
LoadDrives() {
    global configFile
    drives := []
    index := 1
    Loop
    {
        IniRead, val, %configFile%, Drives, Drive%index%
        if (val = "ERROR")
            break
        drives.Push(val)
        index++
    }
    return drives
}

; ---------------------------
; MANAGE DRIVES GUI
; ---------------------------
ManageDrives:
    Gui, Destroy
    Gui, Add, Text,, Current monitored drives:
    Gui, Add, ListBox, vDriveList w200 h120, % GetDriveListText()
    Gui, Add, Button, gAddDrive w90, Add Drive
    Gui, Add, Button, gRemoveDrive x+10 w90, Remove Drive
    Gui, Add, Button, gCloseManage w90, Close
    Gui, Show,, Manage Drives
return

GetDriveListText() {
    drives := LoadDrives()
    out := ""
    for k, v in drives
        out .= v "|"
    return out
}

AddDrive:
    InputBox, newDrive, Add Drive, Enter drive letter (e.g., E:)
    if (ErrorLevel || newDrive = "")
        return
    StringUpper, newDrive, newDrive
    global configFile
    index := 1
    Loop
    {
        IniRead, val, %configFile%, Drives, Drive%index%
        if (val = "ERROR")
            break
        index++
    }
    IniWrite, %newDrive%, %configFile%, Drives, Drive%index%
    GuiControl,, DriveList, % GetDriveListText()
return

RemoveDrive:
    GuiControlGet, selected,, DriveList
    if (selected = "")
        return
    global configFile
    drives := LoadDrives()
    FileDelete, %configFile%
    index := 1
    for k, v in drives
    {
        if (v != selected)
        {
            IniWrite, %v%, %configFile%, Drives, Drive%index%
            index++
        }
    }
    GuiControl,, DriveList, % GetDriveListText()
return

CloseManage:
    Gui, Destroy
return

; ---------------------------
; PAUSE / RESUME MONITORING
; ---------------------------
ToggleMonitoring:
    global monitoring, checkInterval
    if (monitoring)
    {
        SetTimer, CheckSpace, Off
        monitoring := false
        Menu, Tray, Rename, Pause Monitoring, Resume Monitoring
    }
    else
    {
        SetTimer, CheckSpace, %checkInterval%
        monitoring := true
        Menu, Tray, Rename, Resume Monitoring, Pause Monitoring
    }
return

; ---------------------------
; EXIT
; ---------------------------
ExitApp:
ExitApp
 

Attachments

My Computer

System One

  • OS
    Windows 11 Pro
Fixed. Now when I reboot it holds the 100 gig setting

thanks
 

My Computers

System One System Two

  • OS
    WIN 11 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    Custom built - WIN 11 PRO 64-bit ,
    CPU
    Intel(R) Core(TM) i5-14400 2.50 Ghz,
    Motherboard
    ACER Z790 motherboard
    Memory
    32 Gigs
    Hard Drives
    256 gig M2 SSD boot HD, 3 internal HD's, 2 USB
  • Operating System
    Win 10 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    CUSTOM
    CPU
    Haswell CPU 4790k @ 4.4GHz,
    Motherboard
    AsRock Z97 motherboard,
    Memory
    16 Gigs
    Hard Drives
    OS drive 250GB SSD,
still going to add separate thresholds for separate drives. just havent had the time yet. should get it done tonight or tomorrow
 

My Computer

System One

  • OS
    Windows 11 Pro
yes separate thresholds for separate drives is very good - no hurry. Right now things are great
Thanks
 

My Computers

System One System Two

  • OS
    WIN 11 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    Custom built - WIN 11 PRO 64-bit ,
    CPU
    Intel(R) Core(TM) i5-14400 2.50 Ghz,
    Motherboard
    ACER Z790 motherboard
    Memory
    32 Gigs
    Hard Drives
    256 gig M2 SSD boot HD, 3 internal HD's, 2 USB
  • Operating System
    Win 10 PRO
    Computer type
    PC/Desktop
    Manufacturer/Model
    CUSTOM
    CPU
    Haswell CPU 4790k @ 4.4GHz,
    Motherboard
    AsRock Z97 motherboard,
    Memory
    16 Gigs
    Hard Drives
    OS drive 250GB SSD,

Latest Support Threads

Back
Top Bottom