/// <summary>
/// 兼容性中 以管理员身份启动,返回是新写入的还是本身已经存在
/// </summary>
/// <param name="EXEName"></param>
public static bool SetRunAsAdmin(string EXEName)
{
RegistryKey key = Registry.CurrentUser.OpenSubKey("SoftWare\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers", true);//打开注册表子项
if (key == null)//如果该项不存在的话,则创建该子项
key = Registry.LocalMachine.CreateSubKey("SoftWare\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers");
string keyvalue = "RUNASADMIN";//WIN7RTM RUNASADMIN表示以win7兼容,并且以管理员身份启动
if (key.GetValue(EXEName) == null)
{
key.SetValue(EXEName, keyvalue);
return false;
}
object a = key.GetValue(EXEName);
if (!a.ToString().Contains(keyvalue))
{
key.SetValue(EXEName, keyvalue);
return false;
}
return true;
}