Cómo usar VC para escribir un pequeño programa que detecte .Net framework
#include "stdio.h"
#include "windows.h"
#include "tchar.h"
# incluir "strsafe.h"
#include "stdafx.h"
// Para evitar la compilación automática: algunos valores no están definidos en el SDK, defínalos primero.
#ifndef SM_TABLETPC
#define SM_TABLETPC 86
#endif
#ifndef SM_MEDIACENTER
#define SM_MEDIACENTER 87
#endif
//Constante utilizada para detectar nombres de claves de registro y nombres de valores
const TCHAR *g_szNetfx10RegKeyName = _T("Software\\Microsoft \. Política/v1.0″);
const TCHAR *g_szNetfx10RegKeyValue = _T ("3705″);
const TCHAR *g_szNetfx10SPxMSIRegKeyName = _T ("Software\\Microsoft\\ \\ ."Software\\\Microsoft\\\Active Setup\\\Componentes instalados\\\{78705f0d-e8db-4b2d-8193-982bdda15ecd}");
const TCHAR *g_szNetfx10SPxOCMRegKeyName = _T( "Software \\\\Microsoft\Active Setup\\Componentes instalados\\\\{FDC11A6F-17D1-48f9- 9EA3-9051954BAA24}");
const TCHAR *g_szNetfx11RegKeyName = _T("Software\\ Microsoft\ \NET Framework Setup\ NDP\v1.1.4322″);
const TCHAR *g_szNetfx20RegKeyName = _T ("Software\Microsoft\NET Framework Setup\NDP\v2.0.50727″);
const TCHAR *g_szNetfx30RegKeyName = _T("Software\\\\Microsoft\NET Framework Setup\NDP\v3.0\Setup");
const TCHAR *g_szNetfx30SpRegKeyName = _T("Software\\ \\ Microsoft\\NET Framework Setup\NDP\v3.0″);
const TCHAR *g_ szNetfx30RegValueName = _T("InstallSuccess");
const TCHAR *g_szNetfx35RegKeyName = _T (" Software\Microsoft\NET Framework Setup\NDP\v3.5");
const TCHAR *g_szNetfxStandardRegValueName = _T("Instalación");
const TCHAR *g_szNetfxStandardSPxRegValueName = _T (" SP");
const TCHAR *g_ szNetfxStandardVersionR
por ejemploValueName = _T("versión");
//. Información de versión para la versión final de .NET Framework 3.0
const int g_ iNetfx30VersionMajor = 3;
const int g_ iNetfx30VersionMinor =
const int g_ iNetfx30VersionBuild; = 4506 ;
const int g_ iNetfx30VersionRevision = 26;
// Información de la versión final de .NET Framework 3.0.
5
const int g_iNetfx35VersionMajor = 3
const int g_iNetfx35VersionMinor = 5
const int g_iNetfx35VersionBuild = 21022
const int g_iNetfx35VersionRevision = 8;
// Declaración del prototipo de función
bool CheckNetfxBuildNumber(const TCHAR*, const TCHAR*, const int, const int, const int, const int); GetNetfx10SPLevel();
int GetNetfxSPLevel(const TCHAR*, const TCHAR*);
bool IsCurrentOSTabletMedCenter()
bool IsNetfx10Installed(); >
bool IsNetfx10Installed();
p>
bool IsNetfx11Installed();
bool IsNetfx20Installed()
bool IsNetfx30Installed();
bool IsNetfx35Installed();
bool RegistryGetValue(HKEY, const TCHAR*, const TCHAR*, DWORD, LPBYTE, DWORD);
/*** ********************** ******************************* ****** **********
Nombre de la función: determinar si .NET Framework 1.0 está instalado
Descripción: uso
[url]/library/ ms994349.aspx[/url]
Método de detección recomendado para determinar si .NET Framework 1.0 está instalado en la máquina
Entrada: Ninguna
Resultado: .NET Framework 1.Framework 1.0 está instalado; devuelve VERDADERO; de lo contrario, devuelve FALSO
************************ ************************* *************************/
bool IsNetfx10Installed()
{
TCHAR szRegValue[MAX_PATH];
return (RegistryGetValue(HKEY_LOCAL_MACHINE, g_ szNetfx10RegKeyName, g_szNetfx10RegKeyValue, NULL, (LPBYTE)szRegValue, MAX_PATH));
}
/*********************** *********** ************* *******************
Nombre de la función: determinar si .NET Framework 1.1 está instalado
Descripción: uso
>[url]/library/ms994339.aspx[/url]
El método de detección recomendado para determinar si .NET Framework 1.1 está instalado en la máquina
Entrada: Ninguna
Resultado: NINGUNO
Determine si .NET Framework 1.1 está instalado en la computadora
Resultado: .NET Framework 1.1 está instalado en la computadora
Volver VIAJE.
1 Devuelve TRUEO si se ha instalado, de lo contrario devuelve FALSE
********************************* ***** **********************************/
bool IsNetfx11Installed( )
{
bool bRetValue = false;
DWORD dwRegValue=0;
if (RegistryGetValue(HKEY_LOCAL_MACHINE, g_szNetfx11RegKeyName, g_szNetfxStandardRegValueName, NULL, (LPBYTE)amp; dwRegValue, tamaño de(DWORD)))
{
if (1 == dwRegValue)
bRetValue = true; p>
}
return bRetValue;
}
/****************** ********** ************************************* ***
Nombre de la función: Determinar si .NET Framework 2.0 está instalado
Descripción: Utilice la detección recomendada en
[url]/library/aa480243[/. url]
Método para determinar si .NET Framework 2.0 está instalado en la máquina
Entrada: Ninguna
Resultado: .0 Devuelve VERDADERO si está instalado; de lo contrario, devuelve FALSO
** **************************************** *********** ******************/
bool IsNetfx20Installed()
{
bool bRetValue = false;
DWORD dwRegValue=0;
if (RegistryGetValue(HKEY_LOCAL_MACHINE, g_szNetfx20RegKeyName, g_ szNetfxStandardRegValueName, NULL, (LPBYTE)amp; dwRegValue, sizeof(DWORD)))
{
if (1 == dwRegValue)
bRetValue = true
}
return bRetValue;
}
/*************************** *************** *************************
Nombre de la función.
Determine si .NET Framework 3.0 está instalado
Descripción: utilice el método de detección recomendado en
[url]/library/aa964979.aspx[/url]
para determinar si .NET Framework 3.0 está instalado en la máquina
Entrada: Ninguna
Resultado: .FALSE
********** ****** ********************************************** ******* *****/
bool IsNetfx30Installed()
{
bool bRetValue = false;
DWORD dwRegValue=0;
// Compruebe si el valor de registro InstallSuccess existe y es igual a 1
if (RegistryGetValue(HKEY_LOCAL_MACHINE, g_ szNetfx30RegKeyName, g_szNetfx30RegValueName, NULL, (LPBYTE) amp; dwRegValue, tamaño de (DWORD) ))
{
if (1 == dwRegValue)
bRetValue = true;
}
Validación adicional para comprobar que el número de versión enumerado ya contiene una versión preliminar de .NET Framework 3.0. Valor InstallSuccess de .NET Framework 3.0 en el registro.
return (bRetValue amp; CheckNetfxBuildNumber(g_szNetfx30RegKeyName, g_szNetfxStandardVersionRegValueName, g_iNetfx30VersionMajor, g_iNetfx30VersionMinor, g_iNetfx30VersionBuild, g_iNetfx30VersionRevision));
} p>
/****** ************* ********************************** *** **********
Nombre de la función: determinar si .NET Framework 3.5 está instalado
Descripción: usar
[url]/library /cc160716.aspx[/url]
El método de detección recomendado para determinar si .NET Framework 3.5 está instalado en la máquina
Entrada: Ninguna
Resultado: .NET Framework 3.5 está instalado y devuelve VERDADERO; de lo contrario, devuelve FALSO
****************************** * ************************** *******/
bool IsNetfx35Installed()
{