1
我想在我的应用程序中检测USB驱动器是插入还是拔出。使用Windows服务和Vb.Net检测USB驱动器的插入和删除
我已经搜索了很多关于它,但实际上找到了很多答案,但没有工作正是我想要它的样子。我发现一个完美的作品,并提供消息时,驱动器插入或插入,但使用WndProc这是一个非常漫长的过程,很难明白我特别是谁对零知识,但这不是主要问题。我在WndProc创建的主要问题是它不能执行一些我想要做的功能,而WMI可以做到这些。我还发现了WMI解决方案,它可以检测驱动器时,驱动器插入但当设备被拔出这是我的计划很重要的是它不能检测。我发现另一个解决方案,似乎工作,但它是在C#代码中,我试图将其转换为VB.Net,但是当我进入该C#代码的第4行代码时未能这样做(我将在后面添加该代码下面)。
链接,帮助我的部分解决方案:
- WndProc - www.vbforfree.com
检测任何驱动器插上电源,完全拔出事件。
- WMI Solution Vb.Net - www.vb-tips.com
完美的作品时,驱动器插好,但如果一个驱动器被拔出无法察觉。
- WMI Solution C# - stackoverflow.com
,我猜可能工作似乎工作,但未能将其转换为Vb.Net
C#代码:
using System.Management;
ManagementEventWatcher watcher = new ManagementEventWatcher();
WqlEventQuery query = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2");
//I am stuck from the line below this
watcher.EventArrived += new EventArrivedEventHandler(watcher_EventArrived);
watcher.Query = query;
watcher.Start();
watcher.WaitForNextEvent();
我注意到这个问题被张贴在覆盖旧的,理由是你已经自动被禁止的问题上。在这种情况下可以,因为你还没有收到旧问题的答案。但是请注意,总的来说,我们不鼓励这种做法 - 如果您已经收到答案,那么完全修改问题将不公平地使其他人的工作无效,并且您可以预期您的旧问题会被回滚。如果你想问新的堆栈溢出问题,我建议你不要试图解决它,而是让你的问题取消废止。 – halfer
如果你想这样做,[这是关键资源](https://meta.stackoverflow.com/questions/255583/what-can-i-do-when-getting-we-are-no-longer-接受 - 问题 - 答案 - 从)你需要。 – halfer
谢谢。我从来没有这样做过,但这次我没有办法问,我需要帮助。无论如何,我自己不会编辑这个问题,如果它有任何答案,那看起来完全是无稽之谈。并感谢您指出我的看法。 :) –