我的想法是让程序在指定的系统版本(Windows7)中运行,具体为:点击一个按钮,程序去判断系统版本,如果是指定的系统则运行程序,否则输出“此软件只能在Windows7中运行”,各位大大具体该怎么做呢?谢谢了!

解决方案 »

  1.   

    这个问题现在很棘手呢,不知道要不要用到Windows API!
      

  2.   


                OperatingSystem OSv = System.Environment.OSVersion;
                MessageBox.Show("版本 : " + OSv.ToString());
      

  3.   


    System.OperatingSystem o = Environment.OSVersion;
                MessageBox.Show(o.VersionString);
      

  4.   

    可以。这是.Net 完全库里面的。Windows开发能够使用。
    如果是使用Silverlight,取服务器的就需要服务器传,取客户端的不知道还有没有这个属性。
    ASP.NET里面写的代码就都是服务器的。这些注意下就好了。  妥妥儿的直接用。
      

  5.   

    拖个按钮过来,双击进去把代码复制进去就可以了。System.OperatingSystem o = Environment.OSVersion;
                MessageBox.Show(o.VersionString);
      

  6.   

    OperatingSystem OSv = System.Environment.OSVersion;
    if (OSv==6.1){
    }else{
    }是这样么?
      

  7.   

    你先用
    System.OperatingSystem o = Environment.OSVersion;
    MessageBox.Show(o.VersionString);查看一下你WIN7的返回值是什么,然后 if(OSv== 返回值){}else{}可能ServicePack的版本不同,那就处理一下字符串把ServicePack的信息去掉,然后在比较是不是相同。
      

  8.   


    System.OperatingSystem o = Environment.OSVersion;            if (o.VersionString.Remove(o.VersionString.Length - 14).Trim() == "Microsoft Windows NT 5.1.2600")
                    MessageBox.Show("XP系统");
      

  9.   

    string a= Environment.OSVersion.ToString();a=Microsoft Windows NT 5.1.2600 Service Pack 3
      

  10.   

    这个怎么处理字符串把ServicePack的信息去掉,具体怎么做呢?
      

  11.   


    //获取系统版本信息
    System.OperatingSystem o = Environment.OSVersion;//o.VersionString.Remove(o.VersionString.Length-14).Trim()
    //这段是移除Service Pack 信息,一般返回都是 Service Pack 3 总共加空格14个字符,Remove(从第几个字//符开始去除,就是总字符处减去14个字符,就是需要得到的信息),Trim()去掉空格。//然后在进行对比
    if (o.VersionString.Remove(o.VersionString.Length - 14).Trim() == "Microsoft Windows NT 5.1.2600")
            MessageBox.Show("XP系统");
      

  12.   

      //获取系统版本信息
                System.OperatingSystem o = Environment.OSVersion;
                //判断系统版本
                string a= Environment.OSVersion.ToString();
                
                if (a == "Microsoft Windows NT 6.1.7601 Service Pack 1")
                {
                    
                    MessageBox.Show("您的系统为:" + o.VersionString + "\n" + "可以运行此软件!");
                }
                else if (a == "Microsoft Windows NT 6.1.7600")
                {
                    
                    MessageBox.Show("您的系统为:" + o.VersionString + "\n" + "可以运行此软件!");
                }
                else {
                    MessageBox.Show("您当前的系统为:"+o.VersionString+"\n"+"此软件只针对Windows 7系统使用,您确认要继续吗?");
                    
                }我的代码写的有点乱,如果按照您的方法写具体该怎么写呢?
      

  13.   


      //获取系统版本信息
      System.OperatingSystem o = Environment.OSVersion;
      //判断系统版本
      string a= Environment.OSVersion.ToString();
        
      if (a.VersionString.Remove(a.VersionString.Length - 14).Trim() == "Microsoft Windows NT 6.1.7601")
      {
         MessageBox.Show("您的系统为:" + o.VersionString + "\n" + "可以运行此软件!");
      }
      else
      {
         DialogResult exitResult = MessageBox.Show("您当前的系统为:"+o.VersionString+"\n"+"此软件只针对Windows 7系统使用,您确认要继续吗?", "弹出框title", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);            if (exitResult == DialogResult.OK)
                {
                    this.Close();
                }
      }
      

  14.   

    上面有点问题。。我当时没看到你 还声明了个a变量 。去掉a变量,这个没什么用处。 //获取系统版本信息
      System.OperatingSystem o = Environment.OSVersion;
        
      if (a.VersionString.Remove(o.VersionString.Length - 14).Trim() == "Microsoft Windows NT 6.1.7601")
      {
         MessageBox.Show("您的系统为:" + o.VersionString + "\n" + "可以运行此软件!");
      }
      else
      {
         DialogResult exitResult = MessageBox.Show("您当前的系统为:"+o.VersionString+"\n"+"此软件只针对Windows 7系统使用,您确认要继续吗?", "弹出框title", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);            if (exitResult == DialogResult.OK)
                {
                    this.Close();
                }
      }
      

  15.   

    上面 if 里面有个 a 我忘记该了,你把 a 改成 o
      

  16.   

    谢谢您的耐心答复,这句  if (a.VersionString.Remove(a.VersionString.Length - 14).Trim() == "Microsoft Windows NT 6.1.7601")
    XP SP3跟Win7 sp1一样?
      

  17.   

    不一样的,你先MessageBox.show(a.versionString);看一眼win7返回值是什么。
      

  18.   

    刚才看了一下运行得到的结果是Microsoft Windows NT 6.1.7601 Service Pack 1我的是Win7 sp1的
      

  19.   

    那 Windows NT 6.1.7601就应该是WIN7
      

  20.   

    貌似Win7没有安装SP1前是Windows NT 6.1.7600
      

  21.   

    我查了一下,你就判断他是不是nt6.1就可以了,截取字符串的时候改成-20就可以了。Windows NT 6.1 = WIN7
    Windows NT 6.0 = WINVISTA
    Windows NT 5.1 = WINXP
    Windows 4.9 = WINME
    Windows NT 5.0 = WIN2K
    Windows 4.1 = WIN98SE
    Windows 4.01998 = WIN98
    Windows 4.0 = WIN95
    Windows 3.1 = WIN3.1
    Windows 3.0 = WIN3.0
    Windows 2.0 = WIN2.0
    Windows 1.0 = WIN1.0
      

  22.   

    System.OperatingSystem o = Environment.OSVersion;
                MessageBox.Show(o.VersionString);
      

  23.   

    我的想法是去判断并给出系统版本Windows NT 6.1 = WIN7
    Windows NT 6.0 = WINVISTA
    Windows NT 5.1 = WINXP
    Windows 4.9 = WINME
    Windows NT 5.0 = WIN2K
    Windows 4.1 = WIN98SE
    Windows 4.01……
    然后再去询问
      

  24.   


    //获取系统版本信息
      System.OperatingSystem o = Environment.OSVersion;
        
      if (a.VersionString.Remove(o.VersionString.Length - 20).Trim() == "Microsoft Windows NT 6.1.7601")
      {
         MessageBox.Show("您的系统为:" + o.VersionString + "\n" + "可以运行此软件!");
      }
      else
      {
         DialogResult exitResult = MessageBox.Show("您当前的系统为:"+o.VersionString+"\n"+"此软件只针对Windows 7系统使用,您确认要继续吗?", "弹出框title", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);            if (exitResult == DialogResult.OK)
                {
                    this.Close();
                }
      }
      

  25.   

    给你优化了一下,你复制过去就行了。           System.OperatingSystem OS = Environment.OSVersion;            string systemOsVersion = null;            switch (OS.VersionString.Remove(OS.VersionString.Length - 20).Trim())
                {
                    case "Microsoft Windows NT 6.1":
                        systemOsVersion = "WIN7";
                        break;
                    case "Microsoft Windows NT 6.0":
                        systemOsVersion = "WINVISTA";
                        break;
                    case "Microsoft Windows NT 5.1":
                        systemOsVersion = "WINXP";
                        break;
                    case "Microsoft Windows NT 5.0":
                        systemOsVersion = "WIN2000";
                        break;
                    case "Microsoft Windows 4.9":
                        systemOsVersion = "WINME";
                        break;
                    case "Microsoft Windows 4.1":
                        systemOsVersion = "WIN98SE";
                        break;
                    case "Microsoft Windows 4.01998":
                        systemOsVersion = "WIN98";
                        break;
                    default:
                        systemOsVersion = null;
                        break;
                }            if (systemOsVersion == "WIN7")
                {
                    DialogResult exitResult = MessageBox.Show("您当前的系统为:" + systemOsVersion + "\n" + "此软件只针对Windows 7系统使用,您确认要继续吗?", "弹出框title", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);                if (exitResult == DialogResult.Cancel)
                    {
                        this.Close();
                    }
                }
                else
                {
                    MessageBox.Show("您的系统为:" + systemOsVersion + "\n" + "可以运行此软件!");
                }
      

  26.   

    public static string GetOSType()
            {
                Version ver = System.Environment.OSVersion.Version;
                string OSType = "";
                if (ver.Major == 5 && ver.Minor == 0)
                {
                    OSType = "Windows 2000";
                }
                else if (ver.Major == 5 && ver.Minor == 1)
                {
                    OSType = "Windows XP";
                }
                else if (ver.Major == 5 && ver.Minor == 2)
                {
                    OSType = "Windows 2003";
                }
                else if (ver.Major == 6 && ver.Minor == 0)
                {
                    OSType = "Windows Vista";
                }
                else if (ver.Major == 6 && ver.Minor == 1)
                {
                    OSType = "Windows7";
                }
                else
                {
                    OSType = "未知";
                }
                return OSType;
            }
      

  27.   

    楼上正解通过version的各个属性可以得到主版本号和副版本号操作系统版本号可以参靠
    http://news.mydrivers.com/1/130/130047.htm微软Windows版本号一览
    2009-03-16 10:26:20 18524 人阅读 作者:萧萧 编辑:萧萧 [复制链接] [我要爆料]
    虽然Windows的命名取决于很多因素,形式各不相同,但是其内部版本号却是一脉相承的,从最初的Windows 1.0到之后的Windows 2.0、Windows 3.0,再到Windows 95,其版本号为Windows 4.0,随后的Windows 9x均为Windows 4系列。在Windows 7发布之前,微软曾简要提及各个Windows的版本号,并以此解释为何要将下一代操作系统命名为Windows 7,其实,Windows 7的版本号和Vista一样依然是Windows 6系列,Windows 7的兼容性如此良好也得益于这点。微软MSDN技术网站给出了当前使用的各个操作系统的版本号列表,算是一个简单的总结,以便帮助Windows用户了解其正在使用的系统。操作系统
    版本号
    Windows 7
    6.1
    Windows Server 2008 R2
    6.1
    Windows Server 2008
    6.0
    Windows Vista
    6.0
    Windows Server 2003 R2
    5.2
    Windows Server 2003
    5.2
    Windows XP
    5.1
    Windows 2000
    5.0