プロダクトID,オーナー名の取得を取得するにはレジストリを参照する.
#include <winreg.h>
char SubKey[200] = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion";
CString wk00 = "TEST";
CString PrID = "プロダクトID\n";
CString ReOwner ="オーナー名\n";
HKEY hKey = HKEY_LOCAL_MACHINE;
PHKEY pResult;
DWORD dwindex = 0;
long pErrCode;
pErrCode = RegOpenKey(hKey ,SubKey, pResult);
if( pErrCode == ERROR_SUCCESS ) {
hKey = *pResult;
unsigned char WkCr0[200]; // プロダクトIDその他の帰り値
unsigned long VlName , lpRv, lpData ;
DWORD pType = 0;
for(dwindex = 0; dwindex < 99; dwindex++) {
VlName = sizeof SubKey;
lpData = sizeof WkCr0;
pErrCode = RegEnumValue(hKey , dwindex, SubKey , &VlName, &lpRv, &pType, WkCr0, &lpData);
if( pErrCode == ERROR_SUCCESS) {
wk00 = SubKey;
if( wk00 == "ProductId")
PrID = PrID + WkCr0;///プロダクトID
if( wk00 == "RegisteredOwner")
ReOwner = ReOwner + WkCr0;///オーナー名
} else {
break;
}
}
} else {
MessageBox( "オープンエラー" );
}
MessageBox( PrID );
MessageBox( ReOwner );
直接取得するには以下.
HKEY reg;
RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion",
0,
KEY_QUERY_VALUE,
®);
DWORD type = REG_SZ;
char value[64];
DWORD size;
RegQueryValueEx(reg, "ProductId", 0, &type, (LPBYTE)value, &size);
参照