1

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

唯一的问题是在 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... 
        }
    }
}   

任何建议都将受到欢迎!

问候,

塞尔吉奥

4

1 回答 1

1

看起来您需要 XP Service Pack 3 才能工作(x64 上的 SP2)。

于 2012-12-17T18:20:30.740 回答