Bir USB sürücünün takılı olup olmadığına bakmaksızın bağlı olduğunu tespit etmek için WMI kullanın.


4

Kullanıcıların geçici olarak yeni USB depolama aygıtlarına takmalarını önlemek için MS KB 823732 kullanan bir komut dosyası yazıyorum . Bu işe yarar ve HKLM\...\Services\UsbStorkayıt defteri anahtarı yeni bağlanan aygıtlara erişilmesini başarıyla engeller.

Takılı olup olmadığına bakmaksızın bir sürücünün bağlandığını söyleyen bir WMI olayı var mı?

Sorgulamayı denedim __InstanceCreationEventama görünüşe göre sadece sürücü monte edildikten ve kullanıma hazır hale getirildikten sonra ortaya çıkar, ki bu benim gereksinimlerime uymuyor.

Yanıtlar:


1

.NET sürümü: http://dotnetslackers.com/community/blogs/basharkokash/archive/2008/02/06/usb-port-insert-remove-detection-using-wmi.aspx

Kaynak ile: dotnetslackers.com/community/blogs/basharkokash/archive/2008/03/15/USB-Detection-source-code.aspx

İlgili bölüm:

static void AddInsetUSBHandler()
{

    WqlEventQuery q;
    ManagementScope scope = new ManagementScope("root\\CIMV2");
    scope.Options.EnablePrivileges = true;

    try
    {

        q = new WqlEventQuery();
        q.EventClassName = "__InstanceCreationEvent";
        q.WithinInterval = new TimeSpan(0, 0, 3);
        q.Condition = @"TargetInstance ISA 'Win32_USBControllerdevice'";
        w = new ManagementEventWatcher(scope, q);
        w.EventArrived += new EventArrivedEventHandler(USBAdded);
        w.Start();

    }

    catch (Exception e)
    {

        Console.WriteLine (e.Message);
        if (w != null)
              w.Stop();

    }

}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.