4
新しく挿入されたUSBドライブとそのドライブ文字を見つけるためのC#プログラムを作成しました。今私がこのプログラムを実行すると、挿入イベントが発生し、ドライブ文字を取得できませんでした。誰も私にこれをするアイデアを提案することはできますか?新たに挿入されたUSBドライブ文字をC#で取得するにはどうすればよいですか?
コード
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);
}
}
は、あなたがこのVARドライブ=のDriveInfo.GetDrives() .Where(ドライブを試してみました:
マイクロソフトは、あなただけのステファンモジュール全体をインポートしたくない場合は、ポートすることができますVBのコード例を提供しました=> drive.IsReady && drive.DriveType == DriveType.Removable); – rashfmnb
これは、システムに存在するすべてのリムーバブルドライブを選択します –
あまりにも多くの情報を持っているこのsatckoverflowリンクを見てくださいhttp://stackoverflow.com/questions/6003822/how-to-detect-a-usb-drive- has-been-plug-in – rashfmnb