vc 程序获取管理员权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vc 程序获取管理员权限相关的知识,希望对你有一定的参考价值。

参考技术A 如果你是XP系统,那么应该是防火墙和360之类的软件屏蔽造成的,关闭或者禁用,或者点击允许修改就可以了。
win7等系统下,VC修改注册表需要UAC控制许可,才能以管理员权限访问和修改注册表重要位置数据。搜索
”VC请求UAC权限“或者”MFC弹出UAC窗口“都可以获得详细的说明。

在 Windows - API - 如何获取/使用当前用户权限(或单点登录)

【中文标题】在 Windows - API - 如何获取/使用当前用户权限(或单点登录)【英文标题】:In windows - API - How to get/use the current users privileges( or single sign on) 【发布时间】:2011-02-16 08:53:37 【问题描述】:

我正在使用 vc++。我正在尝试创建一个“前端”,它将创建一个任务并将其放入“Window 的本机调度程序”中。该任务的操作是调用备份应用程序。每个任务都需要一些特权来执行给定的程序。我需要为此任务分配管理员权限。我可以保证前端只能由管理员运行。现在我想将当前用户的(管理员)权限分配给任务。直到我在 internet/msdn 中进行的挖掘,api 提供了以下两个选项(第 3 个选项是我的假设)

1) 提供该任务的帐户名、密码。

2) 使用标志“TASK_FLAG_RUN_ONLY_IF_LOGGED_ON”,并给管理员“帐户名”,密码为NULL。

3)单点登录

现在的约束:

1->让客户端频繁输入admin账户名和密码不是个好主意

2->管理员帐户名称并不总是相同的(在 XP 中可以更改它)。所以我无法提供默认的管理员帐户名称。

3-> 我不知道如何实现它。 “单点登录”就像您以管理员身份登录后,应用程序可以获得当前(登录)用户的权限。

为此搜索 MSDN 就像“在干草堆中寻找一根针”。有人,请阐明解决方案。

【问题讨论】:

【参考方案1】:

可能是本地系统帐户

http://msdn.microsoft.com/en-us/library/ms684190(VS.85).aspx

【讨论】:

我尝试使用 api 提供的默认字符串。在运行时,它使用帐户名作为“SYSTEM”。但是,它没有在屏幕上显示 GUI,但我可以在任务管理器中看到该过程。您提供的链接用于“服务”。不适用于调度程序 API。但我的下一个尝试是服务,所以谢谢你的链接。

以上是关于vc 程序获取管理员权限的主要内容,如果未能解决你的问题,请参考以下文章

VC++ Windows7及以上系统中管理员权限与UAC虚拟化详解(附源码)

VS为VC++添加UAC控制(VC程序默认管理员运行)

在没有管理员权限的情况下使用 .NET 框架部署应用程序

在 Windows - API - 如何获取/使用当前用户权限(或单点登录)

VC++判断当前程序对文件或文件夹是否有写权限(附源码)

如何创建只有具有管理员和管理频道权限的成员才能使用的“创建文本/vc 频道”命令?