WMI é uma boa maneira de fazer uma impressão digital de hardwar

Eu quero criar um aplicativo do Windows implantado em c ++ que verifique a impressão digital do hardware (para verificar se o usuário usará o aplicativo apenas em seu computador). Depois de algumas pesquisas, decidi que o WMI é a minha ferramenta. Comecei com um aplicativo MFC simples e, para começar, queria imprimir o número de série do MotherBoard. E nesse momento a coisa toda caiu. Eu verifiquei no XP e Win7 e essa propriedade não é retornada. E isso me fez pensar - e se houver algumas classes / propriedades que não funcionem em determinadas versões do Windows? Ou algumas configurações de hardware? Eu sinceramente não gosto disso. Minha ideia instantânea para a impressão digital foi o endereço MAC (meu aplicativo é estritamente direcionado à rede, portanto, se a máquina não tiver uma conexão de rede, ela não será útil). No entanto, algumas máquinas podem ter vários dispositivos MAC. E alguns dos MACs podem ser virtuais e desaparecem do sistema após a desinstalação (ou seja, cliente VPN). Eu acho que o endereço MAC pode ser facilmente alterado, mas se eu codificá-lo com o número, o usuário pode não descobrir que o usa. Por isso, peço seu conselho - o WMI é uma boa ferramenta para impressão digital de hardware? Se for - quais classes / propriedades você sugeriria usar? Eles devem funcionar em todas as máquinas e sistemas e também ser seguros / imutáveis ao mesmo tempo (ok, não podemos fazer muito se o usuário alterar todo o hardware.) Se o WMI não for uma boa solução, então o que outra estrutura C ++ você sugeriria ? E a seguir - quais propriedades do HD usar então.

questionAnswers(2)

yourAnswerToTheQuestion