0 users online | 0 Guests and 0 Registered

»

ID #1004

Die Registrierungsinformationen von Windows aus der Registry auslesen (32Bit/64Bit)

Über die folgende Funktion kann die Registrierung von Windows ausgelesen werden. Als Rückgabe wird zum Beispiel ausgegeben:

Max Mustermann / Mustermann GmbH

BOOL GetRegisteredInfo( LPTSTR psRegInfo )
{
  HKEY hKeyRoot = HKEY_LOCAL_MACHINE;

  LPTSTR lpSubKey = TEXT("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion");
  LONG lResult;
  HKEY hKey;

  TCHAR *szValue = new TCHAR[1];
  DWORD dwResult = 0;

  DWORD dwType = REG_NONE;
  DWORD dwLen = sizeof(TCHAR);

  LPTSTR regOwner = TEXT("");
  LPTSTR regOrganization = TEXT("");

#ifdef _Win64
  lResult = RegOpenKeyEx(hKeyRoot, lpSubKey, 0, KEY_READ | KEY_WOW64_32KEY, &hKey);
#else
  lResult = RegOpenKeyEx(hKeyRoot, lpSubKey, 0, KEY_READ | KEY_WOW64_64KEY, &hKey);
#endif
  if( lResult == ERROR_SUCCESS )
  {
    if( RegQueryValueEx(hKey, TEXT("RegisteredOwner"),  NULL, &dwType, NULL, &dwLen) == ERROR_SUCCESS )
    {
      delete [] szValue;
      szValue = new TCHAR[dwLen];

      dwResult = RegQueryValueEx(hKey, TEXT("RegisteredOwner"),  NULL, &dwType, (LPBYTE)szValue, &dwLen);

      if( (dwResult == ERROR_SUCCESS) && ( (dwType == REG_SZ) || (dwType = REG_EXPAND_SZ) ) )
      {
	regOwner = (LPTSTR)szValue;
	StringCchCopy(psRegInfo, 255, regOwner);
      }
    }
    StringCchCat(psRegInfo, 255, TEXT(" / "));
    dwType = REG_NONE;

    dwLen = 0;
    if( RegQueryValueEx(hKey, TEXT("RegisteredOrganization"),  NULL, &dwType, NULL, &dwLen) == ERROR_SUCCESS )
    {
      delete [] szValue;
      szValue = new TCHAR[dwLen];

      dwResult = RegQueryValueEx(hKey, TEXT("RegisteredOrganization"),  NULL, &dwType, (LPBYTE)szValue, &dwLen);

      if( (dwResult == ERROR_SUCCESS) && ( (dwType == REG_SZ) || (dwType = REG_EXPAND_SZ) ) )
      {
	regOrganization = (LPTSTR)szValue;
	StringCchCat(psRegInfo, 255, regOrganization);
      }

      RegCloseKey(hKeyRoot);
    }
    return TRUE;
  } else {
    return FALSE;
  }
}

Die Funktion kann jetzt nun so aufgerufen werden :

TCHAR RegisteredInfo[255];

if( GetRegisteredInfo( RegisteredInfo ) )
  _tprintf( TEXT("Registriert      : %s\\n"), RegisteredInfo );

Tags: -

Related entries:

Last update: 2009-10-11 19:34
Author: Rolf Warnecke
Revision: 1.0

{writePrintMsgTag} {writeSend2FriendMsgTag} {writePDFTag}
Please rate this FAQ:

Average rating: 5 (4 Votes)

completely useless 1 2 3 4 5 most valuable

You can comment this FAQ

Most popular FAQs RSS

  1. Display Resolution change
    (30 views)
  2. Scanned a Picture
    (13 views)

Latest FAQs RSS

  1. Scanned a Picture
    (2010-11-19 06:01)
  2. Display Resolution change
    (2010-02-09 18:01)