.NET Framework Version 2.0 がインストールされているかどうかを確認する方法(2)
C++ で書くならこんな感じ?
bool IsInstalledDotNetFramework20(){ bool ret = false; HKEY hKey = 0; DWORD size; DWORD type; PBYTE p = NULL; if( ::RegOpenKeyExA( HKEY_LOCAL_MACHINE , "SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v2.0.50727" , 0 , KEY_QUERY_VALUE , &hKey ) != ERROR_SUCCESS ){ goto release; } if( ::RegQueryValueExA( hKey , "Install" , 0 , &type , NULL , &size ) != ERROR_SUCCESS ){ goto release; } if( type != REG_DWORD ){ goto release; } p = new BYTE[ size / sizeof( BYTE ) ]; if( ::RegQueryValueExA( hKey , "Install" , 0 , &type , p , &size ) != ERROR_SUCCESS ){ goto release; } if( (*((PDWORD)p)) == 1 ){ ret = true; } release:; delete p; if( hKey != 0 ){ ::RegCloseKey( hKey ); } return ret; }