C#如何自动识别机器是在什么系统下?假设机器有两个系统,在英文下弹出消息框显示现在在英文系统下,在中文系统下提示现在在中文系统下

解决方案 »

  1.   

    System.Environment类应该可以提供一些信息的。
      

  2.   

    x:\Documents and Settings\Administrator\桌面
    这样的就是中文系统。
      

  3.   

    ApplicationId.Culture能够提供语言信息。
      

  4.   

    通过读注册表可以知道系统语言版本.
    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Nls\Language   ]分支,
    在右侧窗口中找到字符串值“InstallLanguage”
    (“0804”是简体中文的语言代号,“0409”是英文的语言代号)
      

  5.   


    string LanRet = "";
                RegistryKey rk = Registry.LocalMachine;
                RegistryKey rkk = rk.OpenSubKey("SYSTEM").OpenSubKey("ControlSet001").OpenSubKey("Control").OpenSubKey("Nls").OpenSubKey("Language");
                string obj= rkk.GetValue("InstallLanguage").ToString();
                switch (obj)
                {
                    case "0804":
                        LanRet = "简体中文";
                 break;
                    case "0409":
                        LanRet = "EngLish";
                        break;
                    default:
                        LanRet = "Unknow Language";
                        break;
                }
      

  6.   


    using Microsoft.Win32;
      

  7.   

    哪有那么复杂...注册表都出来了,.NET程序依赖本机系统信息可不是好习惯...如果你是要程序自动根据当前系统环境更改语言,去看看MSDN中的“全球化与本地化”部分章节...开发时为不同语言设置资源文件即可...如果你要读取当前系统环境语言信息,去看看System.Threading.Thread.CurrentCulture...