4

新しく挿入された USB ドライブとそのドライブ文字を見つける ac# プログラムを作成しました。このプログラムを実行すると、挿入イベントが発生し、ドライブ文字を取得できませんでした。誰でもこれを行うためのアイデアを提案できますか?

コード

static void Main(string[] args)
{
    ManagementEventWatcher mwe_creation; //Object creation for 'ManagementEventWatcher' class is used to listen the temporary system event notofications based on specific query. 
    WqlEventQuery q_creation = new WqlEventQuery(); //Represents WMI(Windows Management Instrumentation) event query in WQL format for more information goto www.en.wikipedia.org/wiki/WQL
    q_creation.EventClassName = "__InstanceCreationEvent";// Sets the eventclass to the query
    q_creation.WithinInterval = new TimeSpan(0, 0, 2);    // Setting up the time interval for the event check(here, it is 2 Seconds)
    q_creation.Condition = @"TargetInstance ISA 'Win32_DiskDriveToDiskPartition'"; //Sets which kind of event  to be notified
    mwe_creation = new ManagementEventWatcher(q_creation); //Initializing new instance
    mwe_creation.EventArrived += new EventArrivedEventHandler(USBEventArrived_Creation);//Calling up 'USBEventArrived_Creation' method when the usb storage plug-in event occured
    mwe_creation.Start(); // Starting to listen to the system events based on the given query
    while (true) ;

}
static void USBEventArrived_Creation(object sender, EventArrivedEventArgs e){

    Console.WriteLine("USB PLUGGED IN!");
    ManagementBaseObject instance = (ManagementBaseObject)e.NewEvent["TargetInstance"];
    foreach (var property in instance.Properties)
    {

        if (property.Name == "Name")
            Console.WriteLine(property.Name + " = " + property.Value);
    }

}
4

1 に答える 1