Получить свойства машины - PullRequest
       14

Получить свойства машины

2 голосов
/ 30 ноября 2008

Я хотел бы написать программу, которая будет идентифицировать машину (для целей лицензирования), я пытался получить следующую информацию и скомпилировать XML-файл с этими данными:

  1. MAC-адрес.
  2. Данные процессора (серийный, производство и т. Д.)
  3. Идентификация материнской платы. (серийный, производство и т. д.)

может кто-нибудь направить меня в библиотеку, предоставляющую такую ​​информацию - я пишу свою программу на c ++ и не могу найти такую ​​библиотеку.

Должен ли я копать в реестре эту информацию?

Большое спасибо, Офер

Ответы [ 3 ]

3 голосов
/ 30 ноября 2008

Использование WMI и получение серийного номера материнской платы должно быть достаточно (другие варианты менее безопасны, так как старый компьютер может не иметь сетевого адаптера и / или ЦП может быть изменен с большей вероятностью, чем материнская плата).

0 голосов
/ 30 ноября 2008

Не использовать WMI (медленно, не устанавливается в NT) Используйте стандартный Win32 apis

Смотрите новости: //comp.os.ms-windows.programmer.win32 где на все это отвечали десятилетиями (код C / ++)

0 голосов
/ 30 ноября 2008

GetAdaptersInfo () даст вам MAC-адрес. Вот пример того, как использовать его для этой цели.

/** *************************************

  return string containing first MAC address on computer

  NOTE: requires adding Iphlpapi.lib to project

 */
string GetMac()
{
    char data[4096];
    ZeroMemory( data, 4096 );
     unsigned long  len = 4000;
    PIP_ADAPTER_INFO pinfo = ( PIP_ADAPTER_INFO ) data;
    char sbuf[20];
    string sret;

    DWORD ret = GetAdaptersInfo( pinfo, &len );
    if( ret != ERROR_SUCCESS )
        return string("**ERROR**");

    for(int k = 0; k < 5; k++ ) {
        sprintf(sbuf,"%02X-",pinfo->Address[k]);
        sret += sbuf;
    }
    sprintf(sbuf,"%02X",pinfo->Address[5]);
    sret += sbuf;

    return( sret );
}

В качестве примера полной системы, позволяющей делать подобные вещи, ознакомьтесь с статьей Manuele Sicuteri на CodeProject.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...