Список классов WMIEvent

var isTouchDevice =
    (('ontouchstart' in window) ||
    (navigator.MaxTouchPoints > 0) ||
    (navigator.msMaxTouchPoints > 0));
if(!isTouchDevice){
    /* Code for touch device /*
}else{
    /* Code for non touch device */
}

Веселись!

6
задан sudarsanyes 25 June 2009 в 10:42
поделиться

3 ответа

Вот как перечислить классы событий WMI в пространстве имен root \ cimv2 с помощью C # и System.Management :

using System;
using System.Management;

class Program
{
    static void Main()
    {
        string query =
            @"Select * From Meta_Class Where __This Isa '__Event'";

        ManagementObjectSearcher searcher =
            new ManagementObjectSearcher(query);

        foreach (ManagementBaseObject cimv2Class in searcher.Get())
        {
            Console.WriteLine(cimv2Class.ClassPath.ClassName);
        }
    }
}

root \ cimv2 - это пространство имен WMI по умолчанию, поэтому вам не нужно использовать экземпляр ManagementScope . WQL-запрос, переданный в ManagementObjectSearcher , является запросом метаданных WMI. Он использует:

  • Meta_Class для обозначения запроса как запрос схемы и
  • __ This для рекурсивного перечисления подклассов __ Event

(см. здесь ] и здесь ).

Класс WMI является классом событий, если его поставщик реализован как поставщик событий WMI и должен быть подклассом __ Event . Это не значит, что нельзя использовать "обычный" Классы WMI, такие как Win32_Process и Win32_Service в запросах событий WQL. Вам просто нужно использовать один из производных вспомогательных классов __ InstanceOperationEvent , например __ InstanceCreationEvent или __ InstanceDeletionEvent , и WMI будет использовать свою собственную подсистему событий для доставки событий.

Вот пример WQL-запроса, который подписывается на события создания Win32_Process :

Select * From __InstanceCreationEvent Within 5 Where TargetInstance Isa 'Win32_Process'

В этом случае вы должны использовать предложение Within .

6
ответ дан 8 December 2019 в 16:09
поделиться

Создатель кода WMI - отличный инструмент для изучения WMI, который, помимо прочего, позволяет исследовать классы событий WMI на локальном или удаленном компьютере и генерировать код для получения уведомлений о событиях.

Изменить: Поскольку вы пометили свой вопрос как C # , вас может заинтересовать код для получения списка классов событий, полученных программным путем из определенного класса:

using System.Management;
...

string ancestor = "WMIEvent";     // the ancestor class
string scope = "root\\wmi";       // the WMI namespace to search within

try
{
    EnumerationOptions options = new EnumerationOptions();
    options.ReturnImmediately = true;
    options.Rewindable = false;

    ManagementObjectSearcher searcher =
        new ManagementObjectSearcher(scope, "SELECT * FROM meta_class", options);

    foreach (ManagementClass cls in searcher.Get())
    {
        if (cls.Derivation.Contains(ancestor))
        {
            Console.WriteLine(cls["__CLASS"].ToString());
        }
    }
}
catch (ManagementException exception)
{
    Console.WriteLine(exception.Message);
}
6
ответ дан 8 December 2019 в 16:09
поделиться

Doesn't MSDN have a list of all the MSMCA classes here

UPDATE:
I don't do tons of work with WMI, but I just found this WMI tool that would have been helpful. It gives you a GUI for viewing the WMI hierarchy of objects, and even allows you to register and consume events. This should give you the information you need.

3
ответ дан 8 December 2019 в 16:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: