我遇到过一个问题,启动菜单中的某些应用程序在登录时实际上并没有启动。查看应用程序列表后,我注意到实际上只有我在属性中设置为“以管理员身份运行”(在兼容性选项卡中)的 exe 文件没有运行(还有一个 .cmd 文件)。
如何在启动时运行这些应用程序?
答案1
利用好旧的任务调度程序方法在启动时以提升的权限启动应用程序。
启动任务计划程序并创建新任务
勾选“以最高权限运行”
在操作下指向要运行的 exe
给任务命名并保存
创建新的快捷方式
C:\Windows\System32\schtasks.exe /RUN /TN "MYTASKNAME"
将此快捷方式复制到启动文件夹
还有一个名为UAC 通行证它会为您完成所有步骤。
答案2
我认为使用任务计划程序自动启动程序不是很用户友好,有时它会给我带来副作用(例如未添加程序的托盘图标)。
为了解决这个问题,我制作了一个名为“Elevated Startup”的程序,它首先以管理员权限重新启动自身,然后启动目录中的所有文件。由于 Elevated Startup 现在已提升权限,因此它随后启动的所有程序也都具有管理员权限。该目录位于开始菜单上经典启动目录旁边,其工作原理非常相似。
根据您的 UAC 设置,当程序重新启动时,您可能会遇到一个 UAC 提示。
您可以在这里获取该程序:https://stefansundin.github.io/elevatedstartup/
答案3
另一个可行的解决方案(简单)(截至 2021 年 7 月):
将此行复制到记事本中:
启动/d”应用程序文件夹路径“ “”应用程序。EXE文件
改变大胆的到您自己的路径。然后将其另存为 .bat 文件到此位置:shell:启动。
例子:
启动/d“G:\Software\obs-studio\bin\64bit” “”obs64.exe
这是唯一对我有用的方法。我使用的是 Windows 10 - 20H2(内部版本 19042.1110)。我尝试了任务计划程序方法、注册表和 Elevate(可赢性)。
答案4
Windows 不会运行任何设置了“以管理员身份运行”或“以兼容方式运行”的程序。您需要运行一个“普通”程序,然后再运行您的应用程序。
我使用一个使用 Windows“shellexecute”函数和“runas”动词的程序,例如 elevate.exe (https://www.winability.com/info/elevate/),或者编写自己的例如 (Deplhi6):
program runasadmin;
{$APPTYPE CONSOLE}
uses
{SysUtils,} shellapi{, windows};
var
s : ansistring;
begin
s := paramstr(1);
ShellExecute( 0, 'runas', @s[1], nil, nil, 1 );
end.