判断注册表:如果存在就认为是已经安装:
\LocalMachine\software\microsoft\.NetFrameWork下面的
InstallRoot(=C:\WINDOWS\Microsoft.NET\Framework\)存放安装目录,不同的版本安装在不同的目录下.Policy\v1.0\有版本信息.同时,微软网站
http://www.microsoft.com/china/community/article.asp?oBODY=TechZone/TechArticle/TechDoc/deployNETApp&oXSLT=TechZone/TechArticle/TechContent
也有一篇关于使用C++来检测的文章,不过这篇文章在论坛中有些争议,你自己看看.
\LocalMachine\software\microsoft\.NetFrameWork下面的
InstallRoot(=C:\WINDOWS\Microsoft.NET\Framework\)存放安装目录,不同的版本安装在不同的目录下.Policy\v1.0\有版本信息.同时,微软网站
http://www.microsoft.com/china/community/article.asp?oBODY=TechZone/TechArticle/TechDoc/deployNETApp&oXSLT=TechZone/TechArticle/TechContent
也有一篇关于使用C++来检测的文章,不过这篇文章在论坛中有些争议,你自己看看.
http://expert.csdn.net/Expert/TopicView3.asp?id=1254078
C#就是这样的
FileVersionInfo.GetVersionInfo
Environment.Version
<script languge=javascript>
var fs=new ActiveXObject("Scripting.FileSystemObject");
var s=fs.GetSpecialFolder(WindowsFolder);
var exist=fs.FileExists(s+"\\System32\\MSCorEE.dll");
if (!exist)
alert("没有安装.net framework");
</script>
你的代码出现了错误:出现了运行时间错误。是否要进行调试?
行:5
错误:Automation服务器不能创建对象
你的代码出现了错误:出现了运行时间错误。是否要进行调试?
行:5
错误:Automation服务器不能创建对象
<HTML>
<HEAD>
<title>abc</title>
<meta name=abc1 content="JavaScript">
<meta name=abc2 content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<script language=javascript>
var fs=new ActiveXObject("Scripting.FileSystemObject");
var s=fs.GetSpecialFolder(0);
var exist=fs.FileExists(s+"\\System32\\MSCorEE1.dll");
if (!exist)
alert("没有安装.net framework"); </script>
</form>
</body>
</HTML>
运行到下面就出错了,提示“Automation服务器不能创建对象
”var fs=new ActiveXObject("Scripting.FileSystemObject");
1 打开记事本
2 将上面的代码复制过去
3 保存为abc.htm文件
4 双击打开文件。
<HTML>
<HEAD>
<title>看你的系统安装了.net没有</title>
<meta name=abc1 content="JavaScript">
<meta name=abc2 content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<script language=javascript>
var fs=new ActiveXObject("Scripting.FileSystemObject");
var s=fs.GetSpecialFolder(0);
var exist=fs.FileExists(s+"\\Microsoft.NET\\Framework\\v1.0.3705\\mscorcfg.dll");
if (!exist)
alert("没有安装.net framework"); else
alert("安装了.net framework");
</script>
</form>
</body>
</HTML>则可以
Microsoft.NET\\Framework\\v1.0.3705
这个目录就不对了啊
Parse()函数用来解析settings.ini文件。2. 在Main.cpp文件中,全局函数FxInstallRequired()判断是否要在目标机器上安装.NET Framework. FxInstallRequired()会检测下面的注册表键值和dotnetfx.exe的版本和语言设置。HKLM\SOFTWARE\Microsoft\.NETFramework\policy\v1.03.如果需要安装.NET Framework, 在全局函数ExecCmd()中调用下面的命令silent安装dotnetfx.exe:dotnetfx.exe /q:a /c:"install /l /q"4。 在ExecCmd()全局函数中调用下面的命令安装您自己的MSI文件:msiexec /i <your MSI file> REBOOT=ReallySuppress
运行到下面就出错了,提示“Automation服务器不能创建对象”var fs=new ActiveXObject("Scripting.FileSystemObject");我在几台计算机试过了,都有这样的错误提示
使用FSO这种方法可能检测不出是否已经安装了.net framework,是否还有其他的方法哪?
我看微软的例子是对比 注册表项,再对比系统目录下的文件,。C++的代码我看不太懂,不过在我这里好像有点问题。