私は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...
}
}
}
どんな提案でも大歓迎です!
よろしく、
セルジオ