#include #include #pragma comment(lib, "C:\\borland\\bcc55\\Lib\\PSDK\\advapi32.lib") void SystemReadRegistry(void) { HKEY hKey; DWORD dwType; DWORD dwSize; char strArrayData[3][2]; byte byteData[3]; char charData[1024]; DWORD dwordData; DWORD qwordData; char esData[1024] = ""; int i; /* レジストリキーのオープン */ RegOpenKeyEx( HKEY_CURRENT_USER, "Software\\test2\\sub", 0, KEY_ALL_ACCESS, &hKey ); //データのサイズを取得 RegQueryValueEx( hKey, "string", NULL, &dwType, NULL, &dwSize ); //実際にデータを取得(サイズの指定が正しくないと失敗することがある) RegQueryValueEx( hKey, "string", NULL, &dwType, (LPBYTE)(LPCTSTR)&charData, &dwSize ); printf("%s\n", charData); //データのサイズを取得 RegQueryValueEx( hKey, "int", NULL, &dwType, NULL, &dwSize ); //実際にデータを取得(サイズの指定が正しくないと失敗することがある) RegQueryValueEx( hKey, "int", NULL, &dwType, (LPBYTE)&dwordData, &dwSize ); printf("%d\n", dwordData); //データのサイズを取得 RegQueryValueEx( hKey, "QWord", NULL, &dwType, NULL, &dwSize ); //実際にデータを取得(サイズの指定が正しくないと失敗することがある) RegQueryValueEx( hKey, "QWord", NULL, &dwType, (LPBYTE)&qwordData, &dwSize ); printf("%d\n", qwordData); //データのサイズを取得 RegQueryValueEx( hKey, "ExpandString", NULL, &dwType, NULL, &dwSize ); //実際にデータを取得(サイズの指定が正しくないと失敗することがある) RegQueryValueEx( hKey, "ExpandString", NULL, &dwType, (LPBYTE)&esData, &dwSize ); printf("%s\n", esData); // for (i = 0; i < 3; i++) { // 一回だけ RegQueryValueEx(hKey, "StringArray", NULL, &dwType, NULL, &dwSize); RegQueryValueEx(hKey, "StringArray", NULL, &dwType, (LPBYTE)strArrayData, &dwSize); for (i = 0; i < 3; i++) { printf("%s\n", strArrayData[i]); } // for (i = 0; i < 3; i++) { // 一回だけ RegQueryValueEx(hKey, "Bytes", NULL, &dwType, NULL, &dwSize); RegQueryValueEx(hKey, "Bytes", NULL, &dwType, (LPBYTE)byteData, &dwSize); for (i = 0; i < 3; i++) { printf("%d\n", byteData[i]); } /* 終了 */ RegCloseKey(hKey); } int main(void) { SystemReadRegistry(); return 0; }