1.1k Aufrufe
in Anwendungen(Java,C++...) von
Hallo,

Ich will ein paar basis daten über das BS auslesen:

unsigned char szDataBuf[128];
HKEY hkey;
DWORD dwSize = 128;

RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows NT\\CurrentVersion", 0, KEY_READ, &hkey);
RegQueryValueExA(hkey, "ProductName", NULL, NULL, szDataBuf, &dwSize);
cout << szDataBuf << "\n";
RegQueryValueExA(hkey, "CSDVersion", NULL, NULL, szDataBuf, &dwSize);
cout << szDataBuf << "\n";
RegQueryValueExA(hkey, "CurrentVersion", NULL, NULL, szDataBuf, &dwSize);
cout << szDataBuf << "\n";
RegQueryValueExA(hkey, "CurrentBuildNumber", NULL, NULL, szDataBuf, &dwSize);
cout << szDataBuf << "\n";
RegQueryValueExA(hkey, "RegisteredOrganization", NULL, NULL, szDataBuf, &dwSize);
cout << szDataBuf << "\n";
RegQueryValueExA(hkey, "RegisteredOwner", NULL, NULL, szDataBuf, &dwSize);
cout << szDataBuf << "\n";
RegQueryValueExA(hkey, "SystemRoot", NULL, NULL, szDataBuf, &dwSize);
cout << szDataBuf << "\n";



als ausgabe bekomme ich aber:

Microsoft Windows XP //correct
Service Pack 3 //correct
5.1 //correct
5.1 //nope
5.1 //nope
%username% //nope
%username% //correct
//systemroot fehlt ganz


Manchmal funktionirt es, manchmal nicht.
Ich werde noch ganz schnippelig hier... :S

1 Antwort

0 Punkte
von son_quatsch Experte (5.3k Punkte)
Du musst auch prüfen, ob der Funktionsaufruf selbst erfolgreich ist. Wenn nicht, wird szDataBuf nicht verändert und behält logischerweise auch seinen vorherigen Wert. Warum versuchst du es nicht mit einem etwas ausführlicherem Beispiel, wie unter msdn.microsoft.com/en-us/library/ms724911(VS.85).aspx?

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...