不知道怎么用c#语言去写,最近在做一个程序需要检测电脑是否有环境

解决方案 »

  1.   

    基于framework4.5做一个程序,能运行就是有环境,不能运行就是没环境。
      

  2.   

    用NSIS来打包Function GetNetFrameworkVersion
    ;获取.Net Framework版本支持Push $1
    04
    Push $0
    05
    ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full""Install"
    06
    ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full""Version"
    StrCmp $0 1 KnowNetFrameworkVersion +1ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5""Install"ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5""Version"StrCmp $0 1 KnowNetFrameworkVersion +1ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" "InstallSuccess"ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup" "Version"StrCmp $0 1 KnowNetFrameworkVersion +1ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727" "Install"ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727" "Version"StrCmp $1 "" +1 +2StrCpy $1 "2.0.50727.832"StrCmp $0 1 KnowNetFrameworkVersion +1ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" "Install"ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322" "Version"StrCmp $1 "" +1 +2StrCpy $1 "1.1.4322.573"StrCmp $0 1 KnowNetFrameworkVersion +1ReadRegDWORD $0 HKLM "SOFTWARE\Microsoft\.NETFramework\policy\v1.0""Install"ReadRegDWORD $1 HKLM "SOFTWARE\Microsoft\.NETFramework\policy\v1.0""Version"StrCmp $1 "" +1 +2StrCpy $1 "1.0.3705.0"StrCmp $0 1 KnowNetFrameworkVersion +1StrCpy $1 "not .NetFramework"KnowNetFrameworkVersion:Pop $0Exch $1FunctionEnd
      

  3.   

    除非你不用framework写检测代码,否则运行环境都没有,怎么检测,上面也给你发了,用打包工具指令
      

  4.   

    如果是windows系统,难道兄台不晓得有个wmi东东么?可以查询到系统很多参数,包括用户安装的程序列表
      

  5.   

    zhe这种问题百度一下就有答案了啊,这也来问
      

  6.   

    没安装.net framework .c#是运行不了的。  你的代码运行不了,提示需要安装framework,那就说明这台电脑没有安装了。 
      

  7.   

    奇怪了。难道是我理解错了?
    我以为楼主是   存在.net framework低版本的情况下,去查看有没有4.5的版本。
    并不是说根本没有.net framework环境吧?
      

  8.   

    微软官网有啊,要学会搜索,哈哈,查询注册表,参考:
    https://docs.microsoft.com/zh-cn/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed#net_b我以前也写过这个判断的代码,在这里,你可以直接复制,哈哈:
    https://github.com/youbl/Beinet.cn.Tools/blob/master/MainForm.cs
    在这个页面搜索方法: 
    // 获取本机安装的net版本清单
    public static string GetNetVersion()
      

  9.   

    不过我写的代码也需要.net环境,不管2.0还是4.0的FrameWork都可以运行,
    没有FrameWork,你可以用其它语言实现,反正就是查询注册表的指定位置有没有对应的键值,来判断安装了哪几个版本的FrameWork。
      

  10.   

    经过测试发现,单纯的CPU多线程处理用时是GPU处理的一半,很蛋疼,好久了不知道该如何下手解决
      

  11.   

    来来来  微软已经帮你把代码写好了
    https://docs.microsoft.com/zh-cn/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed
      

  12.   

    必须要第三方打包软件啊!比如SetupFactory(自带检测,设置一下即可)! 自身没.NET 环境肯定运行不了,何来检测一说!
      

  13.   


            /// <summary>
    /// Gets the .NET 4.x release number.
    /// The numbers are documented on http://msdn.microsoft.com/en-us/library/hh925568.aspx
    /// </summary>
    static int? GetDotnet4Release()
    {
    using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full")) {
    if (key != null)
    return key.GetValue("Release") as int?;
    }
    return null;
    }        /// <summary>
    /// Gets whether the .NET 4.5 runtime (or a later version of .NET 4.x) is installed.
    /// </summary>
    public static bool IsDotnet45Installed()
    {
    return GetDotnet4Release() >= 378389;
    }
      

  14.   

    基于framework4.5做一个程序,能运行就是有环境,不能运行就是没环境。