不,但有一个解决方法。
UAC 关闭并不妨碍应用程序以管理员身份运行(假设您有管理员密码,就像您所做的那样),只是让它变得更难。正如您正确指出的那样,在禁用 UAC 并requireAdministrator在清单中设置的情况下,右键单击并选择Run as administrator实际上并没有提升进程,正如 Microsoft 所指出的那样:“应用程序可能会启动,但稍后会失败”
两个步骤:
1) 按住 Shift 的同时右键单击应用程序并选择Run as a different user。然后只需使用您的管理员用户名和密码进行身份验证,您的应用程序应该以管理员身份运行。它对我有用。

2) 构建一个运行asInvoker并检查管理权限的小型可执行文件。当它在没有它们的情况下运行时,警告用户并告诉他们 Shift-Right Click,然后Run as a different user. 如果您的小程序具有管理员访问权限,则用于ShellExecute调用您的主requireAdministrator应用程序。有关流程图,请参见此处的图 9 。您基本上是用您自己的替换内置 UAC 对话框,因为,嘿,UAC 已关闭。
这是 StackOverflow 上某个地方的 C++ 小代码示例,用于检查管理员访问权限:
BOOL IsUserAdmin(VOID)
{
   BOOL b;
   SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;
   PSID AdministratorsGroup; 
   b = AllocateAndInitializeSid(&NtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &AdministratorsGroup); 
   if(true==b) 
   {
      if (!CheckTokenMembership( NULL, AdministratorsGroup, &b)) 
      {
         b = FALSE;
      } 
      FreeSid(AdministratorsGroup); 
   }
   return(b);
}