有些操作需要管理员权限,比如写注册表,所以就有了以下代码:

if (windowsidentity.getcurrent().owner == windowsidentity.getcurrent().user) // check for admin privileges 
            {
                processstartinfo info = new processstartinfo(process.getcurrentprocess().mainmodule.filename);
                info.useshellexecute = true;
                info.verb = "runas"; // invoke uac prompt
                process.start(info);
                application.current.shutdown();
                return;
            }

然后又问你是否同意,都是用户账户控制(uac)惹的事,我明明是管理员身份证登录windows的,需要我再次确认,就想着能不能把uac关闭了,发现是可以的:

  1. 按键盘的“窗口+r”,在运行窗口中输入“gpedit.msc”回车,打开“本地组策略编辑器”
  2. 在编辑器的左面的列表中,依次点开“计算机配置”、“windows设置”、“安全设置”、“本地策略”、“安全选项”
  3. 禁用“用户账户控制:以管理员批准模式运行所有管理员”
  4. 禁用“用户账户控制:用于内置管理员账户的管理员批准模式”