我一直在开发一个应用程序,我想检测usb设备(MASS STORAGE)现在我已经完成但我需要做的是捕获该消息并且不将它传递给windows。我想问一个密码,如果没关系,那么我想将消息传递给Windows,否则丢弃它,我怎么能完成那个,,,>
protected override void WndProc(ref Message m)
{
switch(m.Msg)
{
case Win32.WM_DEVICECHANGE: OnDeviceChange(ref m); break;
}
base.WndProc (ref m);
}
void OnDeviceChange(ref Message msg)
{
int wParam = (int)msg.WParam;
if (wParam == Win32.DBT_DEVICEARRIVAL)
{
label1.Text = "Arrival";
//MessageBox.Show("" + wParam);
//msg = Message.Create(new IntPtr(),1,new IntPtr(),new IntPtr());
}
else if (wParam == Win32.DBT_DEVICEREMOVECOMPLETE) label1.Text =
"Remove";
}
答案 0 :(得分:0)
除非您的软件在响铃0 (或1,不记得)保护级别作为低级应用程序运行,否则无法阻止Windows检测硬件。
这只能通过低级编程(C,ASM)而不是C#来实现。 IL语言永远不会像你想要的那样做。
无论如何,你正在做的事情只是将消息转发到表单的基类,而不是更多。无论如何,无论您是否愿意,系统都会继续向其他应用程序发送此类消息。