我试图编写一个简单的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的解决方案。
亲切的问候
巴勒特
答案 0 :(得分:1)
您可以简单地使用这两种解决方案,然后根据您所使用的Windows版本使用适当的解决方案。
使用System.Environment.OSVersion
属性告诉您所使用的Windows版本,然后执行CodeProject解决方案(如果它早于Windows 7),另一个解决方案是Windows 7或更高版本。
您可以详细了解System.Environment.OSVersion
媒体资源here提供给您的信息。