• XSS.stack #1 – первый литературный журнал от юзеров форума

Получить установлен .NET версии

wacked

floppy-диск
Пользователь
Регистрация
14.10.2009
Сообщения
5
Реакции
0
Код:
#include <windows.h>
#include <iostream>
using namespace std;

int main()
{
	WIN32_FIND_DATA FoundFile;
	HANDLE FileHandle;
	TCHAR NETPath[MAX_PATH];
	HKEY hKey;
	DWORD dwSize;
	char NetVersion[5]="v0.0";

	if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,
  "SOFTWARE\\Microsoft\\.NETFramework",
  0,
  NULL,
        REG_OPTION_NON_VOLATILE,
        KEY_ALL_ACCESS,
        NULL,
        &hKey,
        NULL) == ERROR_SUCCESS )
	{
  if(RegQueryValueEx(hKey, "InstallRoot", NULL, 0, (LPBYTE)NETPath, &dwSize) == ERROR_SUCCESS)
  {
  	lstrcat(NETPath,"\\v*.*");
  	FileHandle=FindFirstFile(NETPath,&FoundFile);
  	do
  	{
    FoundFile.cFileName[4]=0;
    if(FoundFile.cFileName[1]>NetVersion[1] || FoundFile.cFileName[3]>NetVersion[3])
    {
    	lstrcpy(NetVersion,FoundFile.cFileName);
    }
  	}while(FindNextFile(FileHandle,&FoundFile));
  	FindClose(FileHandle);
  }
  else
  	cout<<"RegQueryValueEx: "<<GetLastError()<<endl;
  RegCloseKey(hKey);
	}
	else
  cout<<"RegCreateKeyEx(): "<<GetLastError()<<endl;
	cout<<"Installed .NET Version: "<<NetVersion<<endl;
}
Есть ли лучший способ получить установлен. NET версии?
 
несколько версий может быть установлено,
перебирай вот эту ветку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP

RegEnumKey/RegEnumValue

например HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\1033 см значение Install
 
Ради интереса можно посмотреть ветку юзерагента для ишака - .NET и там оставляет свой след.
да зачем извращаться, я привел ему стопроцентный официальный метод
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх