0
如何知道WPF中的設備是插入還是拔出?WndProc檢測設備拔下並插入
我使用下面的代碼來檢測設備的變化:
private void OnSourceInitialized(object sender, EventArgs e)
{
IntPtr windowHandle = (new WindowInteropHelper(this)).Handle;
HwndSource src = HwndSource.FromHwnd(windowHandle);
src.AddHook(new HwndSourceHook(WndProc));
}
private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
// Handle WM_DEVICECHANGE...
if (msg == 0x219)
{
InitHead();
}
return IntPtr.Zero;
}
謝謝。
編輯:
我沒了下文,仍然沒有工作:
if (msg == 0x0219)
{
switch (wParam.ToInt32())
{
case 0x8000:
{
InitHead();
}
break;
}
}
它的工作。但我想知道設備是插入還是插入。 – Alvin
RTFM:http://msdn.microsoft.com/en-us/library/windows/desktop/aa363480.aspx,DBT_DEVICEARRIVAL/DBT_DEVICEREMOVECOMPLETE/etc。 – Tergiver
我讀過,但wParam不返回。 – Alvin