Delphi检测.Net版本

2017-07-13 08:00:20来源:CSDN作者:FlyAurora人点击

检测.Net环境,用C#或者VB来说,貌似不可行,因为他们的运行也需要.Net支持。用2.0写过,但在Win10下检测工具无法运行。C++没掰扯明白,所以用从未接触过的Delphi来实现。

目前网上检测.Net版本的方法很多,通常有检查Framework目录下的子目录、检查注册表。查看了下在安装了.Net的机器中会在HKEY_LOCAL_MACHINE/Software/Microsoft/NET Framework Setup/NDP/下有记录,比如V4.0 V3.5。所以我想从此处入手。

第一次使用Delphi,可能很多地方不规范或有错误,欢迎指正。

         

program U_Read;{$APPTYPE CONSOLE}uses  Windows,  SysUtils,  Controls,  Forms,  Registry;var     path : string;  function CheckNetFrameWork(sVersion:string): Boolean;  var ff:boolean;   sqlstr,DBServerName,DBName,DBID,DBPwd:string;     reg:TRegistry;    begin    Result := False;  try    Reg:= TRegistry.Create;      try      Reg.RootKey := HKEY_LOCAL_MACHINE ;      if Reg.OpenKeyReadOnly('/Software/Microsoft/NET Framework Setup/NDP/'+sVersion) then        begin          Result := True;        Reg.CloseKey;      end      finally      Reg.Free;      end;    except on e:exception do       writeLn(E.message);  end;  end;begin  if CheckNetFrameWork('v4') or CheckNetFrameWork('v4.0')   thenbegin  path :=ExtractFileDir(ParamStr(0))+'/U_DiskRead/U_DiskRead.exe';  //writeLn('.NET FrameWork 4.0已安装');endelsebegin path :=ExtractFileDir(ParamStr(0))+'/Microsoft .NET Framework 4.0/dotNetFx40_Full_x86_x64.exe';   //writeLn();end; WinExec(Pansichar(path),SW_SHOWNORMAL);end.


代码极其简单,检测是否安装.Net 4.0 如果安装则运行指定程序,如果没有则运行.Net 安装包。

因为是检测工具,所以需要将控制台窗体隐藏,可以将{$APPTYPE CONSOLE}注释。

另外程序是面向用户的,所以需要修改程序的运行图标。

一般来说,在delphi中可以通过 Project – Options – Application 来加载图标,但是有时这个选项是灰掉的,特别在控制台程序中是不可用的。让它出现的方法如下:

在dpr文件uses部分添加 forms 
在begin之前添加 {$R *.res} 
在运行的部分添加 Application.Initialize;

第一次接触Delphi,感觉挺不错。后期继续研究。



最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台