HKEY hKey ;
HKEY hdwKey ;
int nIndex = 0 ;
TCHAR szKeyName[MAX_PATH] ;
TCHAR szBuffer[MAX_PATH] ;
DWORD dwKeyLen = sizeof(szKeyName) ;
DWORD dwNameLen = sizeof(szBuffer) ;
DWORD dwType = REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_NONE|REG_SZ;
CString strKeyName ;
CString strkeyPath ;
CString m_KeyName = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall") ;
DWORD nRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, m_KeyName, 0, KEY_ALL_ACCESS, &hKey) ;
if ( nRet == ERROR_SUCCESS )
{
while( ERROR_SUCCESS == RegEnumKeyEx( hKey, nIndex, szKeyName, &dwKeyLen, 0, NULL, NULL, NULL))
{
nIndex++ ;
strKeyName = szKeyName ;
if (!strKeyName.IsEmpty())
{
strkeyPath = m_KeyName + _T("\\") + strKeyName ;
if ( ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, strkeyPath, 0, KEY_ALL_ACCESS, &hdwKey))
{
RegQueryValueEx( hdwKey, _T("DisplayName"), 0, &dwType, (LPBYTE)szBuffer, &dwNameLen) ;
CString m_str = szBuffer ;
MessageBox( m_str ) ;
memset(szBuffer, 0, MAX_PATH) ;
dwNameLen = sizeof(szBuffer) ;
}
RegCloseKey( hdwKey ) ;
}
memset( szKeyName, 0, MAX_PATH) ;
dwKeyLen = sizeof(szKeyName) ;
}
RegCloseKey( hKey ) ;
}
HKEY hdwKey ;
int nIndex = 0 ;
TCHAR szKeyName[MAX_PATH] ;
TCHAR szBuffer[MAX_PATH] ;
DWORD dwKeyLen = sizeof(szKeyName) ;
DWORD dwNameLen = sizeof(szBuffer) ;
DWORD dwType = REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_NONE|REG_SZ;
CString strKeyName ;
CString strkeyPath ;
CString m_KeyName = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall") ;
DWORD nRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, m_KeyName, 0, KEY_ALL_ACCESS, &hKey) ;
if ( nRet == ERROR_SUCCESS )
{
while( ERROR_SUCCESS == RegEnumKeyEx( hKey, nIndex, szKeyName, &dwKeyLen, 0, NULL, NULL, NULL))
{
nIndex++ ;
strKeyName = szKeyName ;
if (!strKeyName.IsEmpty())
{
strkeyPath = m_KeyName + _T("\\") + strKeyName ;
if ( ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, strkeyPath, 0, KEY_ALL_ACCESS, &hdwKey))
{
RegQueryValueEx( hdwKey, _T("DisplayName"), 0, &dwType, (LPBYTE)szBuffer, &dwNameLen) ;
CString m_str = szBuffer ;
MessageBox( m_str ) ;
memset(szBuffer, 0, MAX_PATH) ;
dwNameLen = sizeof(szBuffer) ;
}
RegCloseKey( hdwKey ) ;
}
memset( szKeyName, 0, MAX_PATH) ;
dwKeyLen = sizeof(szKeyName) ;
}
RegCloseKey( hKey ) ;
}