创建应用程序:通过麦克风声级开关鼠标键盘

时间:2014-09-01 16:56:36

标签: windows-7 keyboard mouse disabled-input

我需要在实践中制作一个在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上运行的最终可执行程序

0 个答案:

没有答案