如何为我的应用程序禁用UAC

3
每当我试图以管理员身份运行我的应用程序时,我都会遇到以下错误,并询问是否允许。
如果我直接运行该应用程序而不是作为管理员,则似乎可以正常工作。我需要做些什么才能摆脱UAC? 不,我不想让用户手动更改UAC设置。
我需要调整注册表设置吗,仅针对我的程序或任何证书我需要签名? alt text

@Subhen 这与你之前的问题有关吗:http://stackoverflow.com/questions/4487517/unable-to-create-or-write-to-a-file-as-standard-user - David Heffernan
@David Heffernan,之前的问题是关于“如何在不以管理员身份运行时创建文件”。这里我想知道如何在以管理员身份运行我的应用程序时避免UAC。此外,那个答案似乎是针对C#的。 - Simsons
4
如果用户已启用UAC,则系统将显示提升对话框,如果您的应用在其清单中标记为需要管理员权限。对于您来说更好的解决方案是避免需要以管理员身份运行。这就是您应该做的,并且所有有关UAC的文档都建议您这样做。您的应用程序需要管理员权限的原因是什么? - David Heffernan
3
官方推荐的方法是只有在用户需要进行需要管理员权限的操作时才请求提升权限。自启动项的更改通常在软件安装期间完成,而此时通常已具有管理员权限。但如果您需要管理员权限,而用户启用了用户账户控制(UAC),则无法避免出现对话框。有很多关于这个问题的文章,可以追溯到 Vista 时代。 - David Heffernan
@Sergey Tachenov 更改受限资源不会触发UAC。您必须自己触发UAC提升对话框,例如通过清单应用程序。我认为您的问题是用户本地资源的更改是否需要管理员权限,当然答案是否定的。 - David Heffernan
显示剩余3条评论
6个回答

4
一般情况下,您无法禁用UAC。UAC的目标是提供多层次的防御措施来抵御恶意软件。如果Trojan可以轻易地禁用UAC,这将产生反作用。您可以接受UAC的存在并与之共存。通常不应以管理员身份运行,因此当您这样做时,出现UAC对话框是完全可以接受的。例如,自动启动可以作为每个用户的设置处理,这意味着您无需成为管理员即可更改该设置。

1
+1 for roll with it,这是一个简洁的表达方式,用于形容当前情况。 - David Heffernan

1

In

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

有一个名为ConsentPromptBehaviorAdmin的项目。请更改它。


1

0
我有一个程序(Notepad2)在Win-7系统上突然需要管理员权限。看起来这很容易改变。
右键单击应用程序,选择属性,转到兼容性选项卡,在底部是
特权级别:以管理员身份运行此程序。
取消勾选并点击确定即可。对我有效。

0

-1

您的进程需要提升其权限。CodeProject 上有几篇文章与此相关,但首先看一下this


他的进程甚至还没有开始! - Billy ONeal
@Billy:我同意。我的回答在这种情况下没有太大的帮助。 - Bojan Komazec

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接