如何在Windows XP机器上的Windows服务中检测传入的USB设备?

时间:2013-04-04 12:12:05

标签: .net c#-4.0 windows-services windows-xp

我试图编写一个简单的Windows服务,它将检测任何传入的USB设备并启动GUI应用程序。

            WqlEventQuery query = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2");
            watcher.EventArrived += watcher_EventArrived;
            watcher.Query = query;
            watcher.Start();
            watcher.WaitForNextEvent();

此解决方案在Win 7中运行良好但是,它在XP中失败(我有XP SP3)。

我在这里找到了另一个解决方案

http://www.codeproject.com/Articles/63878/Enumerate-and-Auto-Detect-USB-Drives

即使在Windows XP上,这在Windows窗体应用程序中运行良好,但是当我在Win 7中投入使用时它失败了

你能帮忙吗?

编辑1: 目前,当我们将代码放在Windows服务中时,没有适用于win XP的解决方案。

亲切的问候

巴勒特

1 个答案:

答案 0 :(得分:1)

您可以简单地使用这两种解决方案,然后根据您所使用的Windows版本使用适当的解决方案。

使用System.Environment.OSVersion属性告诉您所使用的Windows版本,然后执行CodeProject解决方案(如果它早于Windows 7),另一个解决方案是Windows 7或更高版本。

您可以详细了解System.Environment.OSVersion媒体资源here提供给您的信息。