public static void ValidateUserEnviroment(string name, bool needAdmin) { if (false == UserEnviroment.IsWin2kAbove()) { string m = string.Format(Translator.Instance.T("{0} 仅能运行在Windows 2000之后的Windows操作系统上!"), name); throw new Exception(m); } if (needAdmin && false == UserEnviroment.IsAdministrator()) { string m = string.Format(Translator.Instance.T("{0} 需要运行在管理员权限下! 您可以选择:"), name); m += "\n"; m += Translator.Instance.T("1) 使用管理员账号重新登录系统."); m += "\n"; m += Translator.Instance.T("2) 使用下面的方法提升应用程序的运行权限:"); if (UserEnviroment.IsVistaAbove()) { m += "\n"; m += string.Format(Translator.Instance.T("在Windows 资源管理器中选择[{0}], 点击鼠标右键, 在弹出的菜单上选择[以管理员身份运行], 以提升本应用的运行权限."), Application.ExecutablePath); } else { m += "\n"; m += string.Format(Translator.Instance.T("在Windows 资源管理器中选择[{0}], 点击鼠标右键, 在弹出的菜单上选择[运行方式...], 以提升本应用的运行权限."), Application.ExecutablePath); } throw new Exception(m); } }
public static bool IsUACEnabled() { if (false == UserEnviroment.IsVistaAbove()) { return(false); } string sk = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"; RegistryKey rk = Registry.LocalMachine.OpenSubKey(sk); if (rk == null) { return(false); } object o = rk.GetValue("EnableLUA"); rk.Close(); if (o == null) { return(true); } return(Convert.ToBoolean(o)); }