Jak pobrać identyfikator urządzania pokazywany w panelu Ustawienia\Informacje Windowsa

0

Witam.
Chciałbym w aplikacji WPF napisanej pod Frameworkiem 4.8 pobrać identyfikator urządzania pokazywany w panelu Ustawienia\Informacje Windowsa.
Przeszukałem już dokumentacje i udało mi się wyciągnąć identyfikator produktu z tegoż okna.
Mój kod:

ManagementObjectSearcher bios = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem ");
ManagementObjectCollection bios_Collection = bios.Get();
foreach (ManagementObject obj in bios_Collection)
{
    string result = obj["SerialNumber"].ToString(); //Identyfikator produktu
    if (!string.IsNullOrWhiteSpace(result))
    {
        return result;
    }
}

Natomiast nie wiem w której tabeli szukać identyfikatora urządzenia.
Może ktoś mi podpowie?

0
ZrobieDobrze napisał(a):

https://www.google.com/search?client=firefox-b-d&q=wmi+device+identyfier

3cia pozycja, kolego Wojtku Programisto

Ok, ale która dokładnie tabela?

1
WojtexProgramista napisał(a):
ZrobieDobrze napisał(a):

https://www.google.com/search?client=firefox-b-d&q=wmi+device+identyfier

3cia pozycja, kolego Wojtku Programisto

Ok, ale która dokładnie tabela?

Wybrałeś zawód, w którym całe życie będziesz "rozczajał" dokumentację. Mi podany przez googla artykuł dość jasno wystawiał konkretne selecty, ale ja nie będę robił twojego projektu.
jeśli są dwie tabele o to "podejrzane" - bardzo często tak jest - prosty test, który rozstrzyga.

ps. robiłem z WMI doraźnie, wiec nie jest tak, że nie wiem o co chodzi

0
ZrobieDobrze napisał(a):
WojtexProgramista napisał(a):
ZrobieDobrze napisał(a):

https://www.google.com/search?client=firefox-b-d&q=wmi+device+identyfier

3cia pozycja, kolego Wojtku Programisto

Ok, ale która dokładnie tabela?

Wybrałeś zawód, w którym całe życie będziesz "rozczajał" dokumentację. Mi podany przez googla artykuł dość jasno wystawiał konkretne selecty, ale ja nie będę robił twojego projektu.
jeśli są dwie tabele o to "podejrzane" - bardzo często tak jest - prosty test, który rozstrzyga.

ps. robiłem z WMI doraźnie, wiec nie jest tak, że nie wiem o co chodzi

Właśnie dlatego aby nie tracić czasu na przekopywanie się przez tony dokumentacji wrzuciłem to zapytanie na grupę. Miałem nadzieję, ze ktoś już rozkminił ten problem i da konkretną odpowiedź.
Przejrzałem wskazane przez Ciebie linki (3cia pozycja dotyczyła trzeciego linku czy trzeciej tabeli w linku?) i jedyną wartością podobną do identyfikatora urządzenia widoczną w ustawieniach systemu windows było zawartośc pola UUID z tabeli Win32_ComputerSystemProduct. Niestety nie jest to ten sam numer.
Dlatego zapytałem o konkretne rozwiązanie.

ps. bez urazy ale gdybym chciał sam rozwalić system to nie szukałbym pomocy.

1

OD FW 3.5 masz dostęp do zmiennych domniemanych, po co zaśmiecać sobie kod zapisami typu:

ManagementObjectSearcher bios = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem ");

skoro wiesz, że wartość bios to obiekt ManagementObjectSearcher
nie ładniej to zapisać w poniższy sposób?

var bios = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem ");

podobnie z pętlą, jeśli nie rzutujesz w górę to upraszczaj kod.
Przy bios_Collection się nie czepiam, bo metoda Get() nie mówi wprost co zwraca, chociaż po nazwie zmiennej można to wywnioskować.
To tyle prywaty, co do problemu, to możliwe, że chodzi o tą tablicę:

Win32_PnPEntity
0
MaaJin napisał(a):

OD FW 3.5 masz dostęp do zmiennych domniemanych, po co zaśmiecać sobie kod zapisami typu:

ManagementObjectSearcher bios = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem ");

skoro wiesz, że wartość bios to obiekt ManagementObjectSearcher
nie ładniej to zapisać w poniższy sposób?

var bios = new ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem ");

podobnie z pętlą, jeśli nie rzutujesz w górę to upraszczaj kod.
Przy bios_Collection się nie czepiam, bo metoda Get() nie mówi wprost co zwraca, chociaż po nazwie zmiennej można to wywnioskować.
To tyle prywaty, co do problemu, to możliwe, że chodzi o tą tablicę:

Win32_PnPEntity

Dzięki za konkretną podpowiedź.
Niestety, to również nie jest ta tabela.

Co do prywaty to wiem o zmiennych domniemanych ale jakoś nie mam do nich całkowitego przekonania. Domniemywam że taką zmienną kompilator musi przekompilować na odpowiedni typ a mój projekt jest już dostatecznie duży więc nie chce dodawać mu niepotrzebnej roboty.
Oczywiście korzystam również z tych zmiennych ale nie nagminnie.
Pozdrawiam

0

ogolnie to WMI , a jak nie wiesz do jakiego zasobu sie chcesz odwolac, to poszukaj sobie WMI explorera, np
https://www.ks-soft.net/hostmon.eng/wmi/index.htm
ewentualnie, nie wiem czy o to pole chodzi, ale
var systemId = Windows.System.Profile.SystemIdentification.GetSystemIdForPublisher();

1 użytkowników online, w tym zalogowanych: 0, gości: 1