Вот так можно взять уровень микрофона:
Только нужно подобрать его ID, на моем компе ID микрофона = 5.
#SingleInstance, Force
MeterLength = 30
#include va.ahk
id=5
device := VA_GetDevice(id)
audioMeter := VA_GetAudioMeter(device)
VA_IAudioMeterInformation_GetMeteringChannelCount(audioMeter, channelCount)
; "The peak value for each channel is recorded over one device
; period and made available during the subsequent device period."
VA_GetDevicePeriod("capture", devicePeriod)
Loop
{
; Get the peak value across all channels.
VA_IAudioMeterInformation_GetPeakValue(audioMeter, peakValue)
meter := MakeMeter(peakValue, MeterLength)
; Get the peak values of all channels.
VarSetCapacity(peakValues, channelCount*4)
VA_IAudioMeterInformation_GetChannelsPeakValues(audioMeter, channelCount, &peakValues)
Loop %channelCount%
meter .= "`n" MakeMeter(NumGet(peakValues, A_Index*4-4, "float"), MeterLength)
ToolTip, %meter%
Sleep, %devicePeriod%
}
MakeMeter(fraction, size)
{
global MeterLength
Loop % fraction*size
meter .= "|"
Loop % (1-fraction)*size
meter .= "."
meter .= " " fraction
return meter
}
Требуется библиотека VA.ahk
Хм.. странно, работает только если отрыто окно настроек звука, причем именно вкладка "Запись".