我需要在实践中制作一个在WIN7中运行的应用程序。 此应用程序必须连续读取从麦克风接收的声音(噪音),如果声音的级别(噪音)高于某个值,则激活以在屏幕上显示Jpeg图像,同时停用鼠标和键盘。调整延迟并在延迟时间后重新激活鼠标和键盘。 此应用程序必须从PC的StartUp开始。 我需要在每台带有WIN7的PC的计算机教室中使用此应用程序。 这可以是批处理文件,也可以是C ++或其他所有内容。 有人可以帮助我吗?
我发现这与读取麦克风输入电平有关:
static float peak = 5;
,而(1)
{ HRESULT hr;
IMMDeviceEnumerator *pEnumerator = NULL;
IMMDevice *pDevice = NULL;
IAudioMeterInformation *pMeterInfo = NULL;
CoInitialize(NULL);
// Get enumerator for audio endpoint devices.
hr = CoCreateInstance(__uuidof(MMDeviceEnumerator),
NULL, CLSCTX_INPROC_SERVER,
__uuidof(IMMDeviceEnumerator),
(void**)&pEnumerator);
EXIT_ON_ERROR(hr)
// Get peak meter for default audio-capturing device.
hr = pEnumerator->GetDefaultAudioEndpoint(eCapture, eConsole, &pDevice);
EXIT_ON_ERROR(hr)
hr = pDevice->Activate(__uuidof(IAudioMeterInformation),
CLSCTX_ALL, NULL, (void**)&pMeterInfo);
EXIT_ON_ERROR(hr)
hr = pMeterInfo-> GetPeakValue(& peak);
printf(“\ r \ n当前标量为标量:%f”,峰值);
睡眠(500); //每半秒更新一次
退出:
if (FAILED(hr))
{
MessageBox(NULL, TEXT("This program requires Win7."),
TEXT("Error termination"), MB_OK);
}
SAFE_RELEASE(pEnumerator)
SAFE_RELEASE(pDevice)
SAFE_RELEASE(pMeterInfo)
CoUninitialize();
我发现这与键盘和鼠标的开/关输入有关:
类MyClass
{ [的DllImport( “USER32.DLL”)]
private static extern bool BlockInput(bool fBlockIt);
private static void MyMethod()
{
BlockInput(true);
Run(@DesktopDir & "\autoit\" & "mu.exe", "")
Thread.Sleep(60000);
BlockInput(false);
}
}
我不知道如何将它们用于在StartUp上运行的最终可执行程序