Wczoraj napisałam, że pokażę wam jak użyć WMI z poziomu C#. Scenariusz jest następujący: chcemy utworzyć drobny launcher, który pozwoli nam na odpalenie dowolnej gierki, jaką widzimy w folderze games w win7 na przykład. Tym razem uniknę wklejania całego kodu, posłużę się tym, który upubliczniłam w wakacje, a dostępny jest pod adresem https://letsplay.codeplex.com/SourceControl/latest#LetsPlay/MainWindow.xaml.cs.
WMI zostało użyte dokładnie w tym fragmencie:
# ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2\\Applications\\Games", "SELECT * FROM Game"); Gry = new ObservableCollection(); foreach (ManagementObject queryObj in searcher.Get()) { Gry.Add(new Game { gameName = queryObj["Name"].ToString(), pathFile = queryObj["GDFBinaryPath"].ToString(), InstallFolder = queryObj["GameInstallPath"].ToString() }); } listaGier.DataContext = Gry;
Uderzające jest podobieństwo pobrania interesujących nas danych w podobny sposób, w jaki pobieramy dane z bazy danych.
Wykorzystanie do pobrania listy gier jest zupełnie przypadkowe. Równie dobrze mogłabym odpytać dowolny czujnik czy wylistować dowolny typ elementów, jakie rejestruje Windows.
Jeśli kogoś interesowały by inne kawałki kodu, dajcie znać, omówię.