Red de conocimiento informático - Material del sitio web - Cómo usar VC para escribir un pequeño programa que detecte .Net framework

Cómo usar VC para escribir un pequeño programa que detecte .Net framework

¿Cómo usar VC para detectar la versión de .NetFrameWork en el sistema? Para conocer el principio, consulte lo que acabo de escribir. Si no lo comprende, simplemente pegue el código a continuación y búsquelo en Baidu. ¿Por qué no pegar el código de la función? Simplemente pegue el código real.

#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;

}

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));

}

/****** ************* ********************************** *** **********

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()

{