天天看點

檢測 .NET Framework 3.5

通過讀取系統資料庫項或通過查詢 Internet Explorer 中的使用者代理字元串,可以檢測是否已安裝了 .NET Framework 3.5。

讀取系統資料庫項

安裝成功完成後,.NET Framework 3.5 安裝程式會寫入系統資料庫項。通過檢查下表中列出的系統資料庫項,可以檢測是否安裝了 .NET Framework 3.5。

系統資料庫項名稱
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5

名稱:Install

類型:DWORD

資料:1

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform

名稱:Version

類型:REG_SZ

資料:.NET CLR 3.5.build number

讀取浏覽器中的使用者代理字元串

當計算機上安裝了 .NET Framework 3.5 後,.NET Framework 3.5 版本号将顯示為浏覽器标頭中報告的使用者代理字元串的一部分。以下示例示範了一個示例頁,該頁使用 JavaScript 檢測并報告是否安裝了 .NET Framework 3.5。

<html>

<head>

<title>Test for .NET Framework 3.5</title>

<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" />

<script type="text/JavaScript">

<!--

var NETFX3RuntimeVersion = "3.5.21022";

function body_onload()

{

var result = document.getElementById("result");

if (HasRuntimeVersion(NETFX3RuntimeVersion))

{

result.innerHTML = "This machine has the correct version of the .NET Framework 3.5 runtime: " 

+ NETFX3RuntimeVersion + "." 

+ "\n\nThis machine's userAgent string is: " 

+ navigator.userAgent + ".";

} 

else

{

result.innerHTML = "The .NET Framework version 3.5 is not installed on this computer.<br/>"

+ "Click <a href='http://msdn.microsoft.com/windowsvista/default.aspx'>"

+ " here</a> to get the .NET Framework 3.5 now.";}

}

//

// Retrieve the version from the user agent string and compare with specified version.

//

function HasRuntimeVersion(versionToCheck)

{

var userAgentString = 

navigator.userAgent.match(/.NET CLR 3.5.[0-9]+/g);

if (userAgentString != null)

{

var i;

for (i = 0; i < userAgentString.length; ++i)

{

if (CompareVersions(GetVersion(versionToCheck), 

GetVersion(userAgentString[i])) <= 0)

return true;

}

}

return false;

}

//

// Extract the numeric part of the version string.

//

function GetVersion(versionString)

{

var numericString = versionString.match(/([0-9]+)\.([0-9]+)\.([0-9]+)/i);

return numericString.slice(1);

}

//

// Compare the version strings by converting them to numeric format.

//

function CompareVersions(version1, version2)

{

for (i = 0; i < version1.length; ++i)

{

var number1 = new Number(version1[i]);

var number2 = new Number(version2[i]);

if (number1 < number2)

return -1;

if (number1 > number2)

return 1;

}

return 0;

}

-->

</script>

</head>

<body onload="body_onload();">

<div id="result" ></div>

</body>

</html>
           

如果搜尋字元串“.NET Framework 3.5”版本成功,将顯示以下消息:

This machine has the correct version of the .NET Framework 3.5: 3.5.28015.00.

This machine's userAgent string is: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.5.28015.00).

(根據測試 .NET Framework 時使用的不同浏覽器和浏覽器版本,使用者代理字元串的詳細資訊會略有不同。)

如果沒有安裝“.NET Framework 3.5”,将顯示以下消息:

The .NET Framework version 3.5 is not installed on this computer.

Click here to get the .NET Framework 3.5 now.

轉載于:https://www.cnblogs.com/sqshine/archive/2009/03/26/1422433.html

繼續閱讀