C# - 在Windows XP - USB驱动器上未检测到事件

时间:2012-12-17 18:04:31

标签: c# windows-7 insert windows-xp usb

我是C#的新手 - 三天前因为对usb驱动器的特殊需求而开始。在这里和那里阅读我可以使用以下代码。我想要知道用户何时在usb端口插入pendrive。

唯一的问题是在XP32(我测试的唯一XP)上永远不会检测到该事件。在Windows 7上它运行完美。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management;
using System.Diagnostics;
using System.Threading;
using System.IO;
using Microsoft.Win32;
using System.Security.Permissions;

namespace X
{
    class Program
    {

        static void Main(string[] args)
        {    
            ManagementEventWatcher watcher = new ManagementEventWatcher();
            WqlEventQuery query = new WqlEventQuery("SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2");
            watcher.Query = query;
            watcher.Start();
            watcher.WaitForNextEvent();
         // DO something if a pen drive (or any storage device) is inserted.
         // Works fine on Windows 7
         // XP will ignore the event... 
        }
    }
}   

非常欢迎任何建议!

问候,

塞尔吉奥

1 个答案:

答案 0 :(得分:1)

Looks like您需要XP Service Pack 3才能正常工作(x64上的SP2)。