資源簡介
C#/C++麥克風插拔檢測,
3個工程:一個是C++實現IMMNotificationClient方式,一個是將IMMNotificationClient方式的修改為dll,另外一個是調用IMMNotificationClient的dll,或者調用naudio方式來實現,IMMNotificationClient來自于微軟提供的demo,naudio需要自己去naudio官網查看如何使用

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Linq;
using?System.Runtime.InteropServices;
using?System.Text;
using?System.Threading.Tasks;
using?System.Windows.Forms;
using?NAudio.CoreAudioApi;
using?System.Threading;
namespace?mic_dectected_csharp?
{
????public?partial?class?Form1?:?Form
????{
????????[DllImport(“user32.dll“?EntryPoint?=?“FindWindow“?CharSet?=?CharSet.Auto)]
????????public?extern?static?IntPtr?FindWindow(string?lpClassName?string?lpWindowName);
????????[DllImport(“user32.dll“?CharSet?=?CharSet.Auto)]
????????public?static?extern?int?PostMessage(IntPtr?hWnd?int?msg?IntPtr?wParam?IntPtr?lParam);
????????public?const?int?WM_CLOSE?=?0x10;
????????private?NotificationClient?m_NotificationClient;
????????public?Form1()
????????{
????????????InitializeComponent();
????????}
????????private?void?button1_Click(object?sender?EventArgs?e)
????????{
????????????//GetstartWithAudio();
????????????GetStartWithMyDll();
????????}
????????private?void?GetstartWithAudio()
????????{
????????????var?enumerator?=?new?NAudio.CoreAudioApi.MMDeviceEnumerator();
????????????//?Allows?you?to?enumerate?rendering?devices?in?certain?states
????????????var?endpoints?=?enumerator.EnumerateAudioEndPoints(
????????????????DataFlow.Render
????????????????DeviceState.Unplugged?|?DeviceState.Active);
????????????foreach?(var?endpoint?in?endpoints)
????????????{
????????????????Console.WriteLine(“{0}?-?{1}“?endpoint.DeviceFriendlyName?endpoint.State);
????????????}
????????????m_NotificationClient?=?new?NotificationClient();
????????????m_NotificationClient.eStateChangeEvent?+=?m_NotificationClient_eStateChangeEvent;
????????????//?Aswell?as?hook?to?the?actual?event
????????????enumerator.RegisterEndpointNotificationCallback(m_NotificationClient);
????????}
????????private?void?GetStartWithMyDll()
????????{
????????????AudioStateListenerWrapper?aslw?=?new?AudioStateListenerWrapper();
????????????aslw.StartListerMicState();
????????????AudioStateListenerWrapper.eStateChangeEvent?+=?m_NotificationClient_eStateChangeEvent;
????????}
????????void?m_NotificationClient_eStateChangeEvent(object?sender?StateChangeEvent?e)
????????{
????????????string?deviceid?=?e.deviceId;
????????????DeviceState?newstate?=?e.newState;
????????????this.Invoke(new?Action(()?=>
????????????{
????????????????IntPtr?ptr?=?FindWindow(null?“麥克風提示“);//如果彈出的用戶登錄提示窗口還在,則關掉它
????????????????if?(ptr?!=?IntPtr.Zero)
????????????????{
????????????????????PostMessage(ptr?WM_CLOSE?IntPtr.Zero?IntPtr.Zero);
????????????????????Update();
????????????????}
????????????}));
????????????switch?(newstate)
????????????{
????????????????case?DeviceState.Active:
????????????????????{
????????????????????????this.Invoke(new?Action(()?=>
????????????????????????{
????????????????????????????MessageBox.Show(“麥克風已插上!““麥克風提示“);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????187??2016-03-25?11:42??mic_dectected_csharp\mic_dectected_csharp\App.config
?????文件??????23168??2016-03-26?14:26??mic_dectected_csharp\mic_dectected_csharp\bin\Debug\mic_dectected_csharp.vshost.exe
?????文件????????187??2016-03-25?11:42??mic_dectected_csharp\mic_dectected_csharp\bin\Debug\mic_dectected_csharp.vshost.exe.config
?????文件????????490??2013-06-18?20:28??mic_dectected_csharp\mic_dectected_csharp\bin\Debug\mic_dectected_csharp.vshost.exe.manifest
?????文件??????47616??2016-03-25?18:47??mic_dectected_csharp\mic_dectected_csharp\bin\Debug\mic_detected.dll
?????文件???????6080??2016-03-26?15:11??mic_dectected_csharp\mic_dectected_csharp\Form1.cs
?????文件???????2053??2016-03-26?15:04??mic_dectected_csharp\mic_dectected_csharp\Form1.Designer.cs
?????文件???????5817??2016-03-26?15:04??mic_dectected_csharp\mic_dectected_csharp\Form1.resx
?????文件???????2999??2016-03-26?14:51??mic_dectected_csharp\mic_dectected_csharp\IMMNotificationClient.cs
?????文件???????4176??2016-03-26?15:10??mic_dectected_csharp\mic_dectected_csharp\mic_dectected_csharp.csproj
?????文件??????33362??2016-03-25?15:09??mic_dectected_csharp\mic_dectected_csharp\NativeAudioAPI1.cs
?????文件???????1453??2016-03-26?14:31??mic_dectected_csharp\mic_dectected_csharp\obj\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件???????7186??2016-03-26?15:10??mic_dectected_csharp\mic_dectected_csharp\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件??????????0??2016-03-25?11:42??mic_dectected_csharp\mic_dectected_csharp\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
?????文件??????????0??2016-03-25?11:42??mic_dectected_csharp\mic_dectected_csharp\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
?????文件??????????0??2016-03-25?11:42??mic_dectected_csharp\mic_dectected_csharp\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
?????文件????????133??2016-03-25?12:12??mic_dectected_csharp\mic_dectected_csharp\packages.config
?????文件????????543??2016-03-25?11:42??mic_dectected_csharp\mic_dectected_csharp\Program.cs
?????文件???????1452??2016-03-25?11:42??mic_dectected_csharp\mic_dectected_csharp\Properties\AssemblyInfo.cs
?????文件???????2870??2016-03-25?11:42??mic_dectected_csharp\mic_dectected_csharp\Properties\Resources.Designer.cs
?????文件???????5612??2016-03-25?11:42??mic_dectected_csharp\mic_dectected_csharp\Properties\Resources.resx
?????文件???????1107??2016-03-25?11:42??mic_dectected_csharp\mic_dectected_csharp\Properties\Settings.Designer.cs
?????文件????????249??2016-03-25?11:42??mic_dectected_csharp\mic_dectected_csharp\Properties\Settings.settings
?????文件???????3735??2016-03-26?15:13??mic_dectected_csharp\mic_dectected_csharp.sln
????..A..H.?????66048??2016-03-26?15:14??mic_dectected_csharp\mic_dectected_csharp.v12.suo
?????文件?????471040??2016-03-25?12:12??mic_dectected_csharp\packages\NAudio.1.7.3\lib\net35\NAudio.dll
?????文件?????940967??2016-03-25?12:12??mic_dectected_csharp\packages\NAudio.1.7.3\lib\net35\NAudio.xm
?????文件?????236032??2016-03-25?12:12??mic_dectected_csharp\packages\NAudio.1.7.3\lib\windows8\NAudio.Win8.dll
?????文件?????576543??2016-03-25?12:12??mic_dectected_csharp\packages\NAudio.1.7.3\lib\windows8\NAudio.Win8.xm
?????文件???????2660??2016-03-25?12:12??mic_dectected_csharp\packages\NAudio.1.7.3\license.txt
............此處省略62個文件信息
評論
共有 條評論