NZXT CAM locks the sensors when it is launched first, but if another process has them locked the software (NZXT CAM) will still read them and function.
I created a workaround powershell script that uses the free Libre Hardware monitor to "lock" the sensors, then NZXT CAM is launched, then AIDA64. Using this method I can have both NZXT CAM and AIDA64 using the sensors.
At the end of the script it terminates the Libre Hardware monitor process as it is no longer needed.
I then created a windows task scheduler job to run the script at user login, below is the script if anyone was interested in something similar. (I tried to document everything in the script.)
# This script will allow the sensors for NZXT AIOs to be used in AIDA64 while NZXT CAM software is running.
#
# The NZXT CAM software will lock access to the sensors if it launched before AIDA64.
# If the sensors are already locked when NZXT CAM is launched, the software will still load and access the sensors.
# Unfortunatly AIDA64 will not lock the sensors if it is launched first, so another free software "Libre Hardware Monitor" is used for this.
#
# The followings steps are run in the script:
# -------------------------------------------
# - Libre Hardware monitor is launched, this will soft lock the NZXT sensors.
# - The script delays for 5 seconds to allow time for Libre Hardware monitor to finsih loading.
# - NZXT CAM software is launched.
# - AIDA64 is launched.
# - The script delays for 5 seconds again to allow time for everything to load.
# - Libre Harware monitor is no longer needed once everything is loaded, so the script ends the program.
# Libre Hardware Monitor can be downloaded from the following link.
# https://github.com/LibreHardwareMonitor/LibreHardwareMonitor
# To run from windows task scheduler
# ----------------------------------
# - Open Task Scheduler (taskschd.msc)
# - Click Create Task
# General Tab:
# - Name: Startup Script (Or whatever)
# - Check Run only whne the user is logged on
# - Check Run with highest privileges (admin rights)
# Triggers Tab:
# - New Trigger > At log on > Any user (or your user account)
# Actions Tab:
# - Action: Start a program
# - Program/script: powershell.exe
# - Arguments: -WindowStyle Hidden -ExecutionPolicy Bypass -File "C:\Path\To\startup.ps1"
# - Save > enter your password if prompted.
# Start Libre Hardware Monitor to lock the NZXT sensors
Start-Process "D:\LibreHardwareMonitor\LibreHardwareMonitor.exe" -WindowStyle Minimized
# Sleep 20 seconds to let the program initialize
Start-Sleep -Seconds 20
# Start NZXT CAM with "--startup" parameter
# Program produces output when called from a script, "-RedirectStandardOutput" is used to send it to NULL.
Start-Process "C:\Program Files\NZXT CAM\NZXT CAM.exe" -ArgumentList "--startup" -RedirectStandardOutput "NUL"
# Start AIDA64
Start-Process "C:\Program Files (x86)\FinalWire\AIDA64 Extreme\aida64.exe" -WindowStyle Minimized
# Sleep for 30 seconds
Start-Sleep -Seconds 30
# Terminate Libre Hardware Monitor as it is not needed to run anymore.
$proc1 = Get-Process -Name "LibreHardwareMonitor" -ErrorAction SilentlyContinue
if ($proc1) {
Stop-Process -Id $proc1.Id -Force
}