1

私はC#を初めて使用します。USBドライブに関する特別なニーズがあるため、3日前に開始しました。あちこちを読んで、私は次のコードを動作させることができました。私が欲しいのは、ユーザーがいつ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 に答える