C# 检测到usb时执行一些操作c

C# 检测到usb时执行一些操作c,c#,C#,我一直在开发一个应用程序,现在我想检测usb设备大容量存储,但我需要做的是捕获该消息,不要将其传递到windows。我想询问一个密码,如果可以的话,那么我想将消息传递到windows,否则就放弃它,,,我如何才能做到这一点,,,,> protected override void WndProc(ref Message m) { switch(m.Msg) { case Win32.WM_DEVICECHANGE: OnDeviceChange(ref m); break; } base.Wnd

我一直在开发一个应用程序,现在我想检测usb设备大容量存储,但我需要做的是捕获该消息,不要将其传递到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";
}

您无法阻止windows检测硬件,除非您的软件在环0或环1下运行,否则无法将保护级别记为低级别应用程序

这只能通过低级编程C、ASM而不是C来实现。IL语言永远无法完成您想做的事情


无论如何,您所做的只是将消息跳过到表单的基类,而不是更多。无论您是否想要,系统都将继续向其他应用程序发送类似的消息。

我只想从操作系统的消息que中提取消息,这样windows就不会知道设备。。。这在c中是不可能的。。。?如果没有,那么你能带我去一个c库吗?也许我可以用它c@user1403207我怀疑是否有一个开放的免费下载的图书馆。我想你应该自己负责。