Запрос информации об оборудовании с использованием COM + Automation и WMI - PullRequest
1 голос
/ 26 июля 2011

Я занимаюсь разработкой приложения Silverlight 4 (или, возможно, 5) OOB с повышенным доверием.Я знаю, как использовать AutomationFactory для запроса WMI , но можно ли запрашивать информацию об оборудовании, такую ​​как серийный номер жесткого диска?Обратите внимание, что это приложение OOB с повышенным доверием, поэтому никакой угрозы безопасности не существует.Я собираюсь выполнить некоторые действия по активации в моем приложении Silverlight.

РЕДАКТИРОВАТЬ: Решено!Например, вы можете запросить серийный номер материнской платы, используя следующий фрагмент кода:

    using (dynamic SWbemLocator = AutomationFactory.CreateObject("WbemScripting.SWbemLocator"))
    {
        SWbemLocator.Security_.ImpersonationLevel = 3;
        SWbemLocator.Security_.AuthenticationLevel = 4;
        dynamic IService = SWbemLocator.ConnectServer(".", @"root\cimv2");
        dynamic QueryResults = IService.ExecQuery(
            @"SELECT Product, SerialNumber FROM Win32_BaseBoard");
        dynamic QueryResult = QueryResults.ItemIndex(0);
        string name = QueryResult.Product;
        string value = QueryResult.SerialNumber;
        MessageBox.Show(name + "\r\n" + value);
    }

Заранее спасибо.

1 Ответ

2 голосов
/ 26 июля 2011

По сути, если вы можете сделать это в VBScript, то вы можете сделать это с OOB + Повышенное доверие.В частности, WMI обычно используется административными сценариями, обычно написанными на VBScript.Следовательно, лучший подход состоит в том, чтобы искать примеры того, что вы хотите сделать на VBScript, а затем просто портировать на C #, используя тип dynamic.

...