C 如何检查当前用户是否具有管理权限

C 如何检查当前用户是否具有管理权限,c,windows,winapi,C,Windows,Winapi,我可以使用什么Windows API函数检查运行我的应用程序的当前用户是否具有管理权限 以下是我的操作系统详细信息:WINDOWS XP、VISTA和WINDOWS 7 要使用的语言:CShell API有一个函数IsUserAnAdmin()来完成此操作。无需乱动令牌。Shell API有一个函数IsUserAnAdmin()来实现这一点。无需乱动令牌。即使用户拥有管理权限,也不意味着您的程序拥有管理权限-它需要提升。这可以由用户明确要求以管理员身份运行它来完成,但通常由程序本身通过嵌入到可执

我可以使用什么Windows API函数检查运行我的应用程序的当前用户是否具有管理权限

以下是我的操作系统详细信息:WINDOWS XP、VISTA和WINDOWS 7

要使用的语言:C

Shell API有一个函数IsUserAnAdmin()来完成此操作。无需乱动令牌。

Shell API有一个函数IsUserAnAdmin()来实现这一点。无需乱动令牌。

即使用户拥有管理权限,也不意味着您的程序拥有管理权限-它需要提升。这可以由用户明确要求以管理员身份运行它来完成,但通常由程序本身通过嵌入到可执行文件中的清单来请求。一旦清单要求特权,它就不是可选的-在用户批准并提供必要的密码之前,程序将不会运行。

即使用户具有管理特权,也不意味着您的程序具有管理特权-它需要提升。这可以由用户明确要求以管理员身份运行它来完成,但通常由程序本身通过嵌入到可执行文件中的清单来请求。一旦清单要求特权,它就不是可选的-在用户批准并根据需要提供密码之前,程序不会运行。

您的意思是如果当前登录的用户是管理员?如果当前进程以管理员权限运行?您需要什么功能?安装硬件?软件?即使是管理员模式也可能受到限制。我的目标是安装一个具有“Windows服务”和“Dpinst.exe”的应用程序,两者都需要管理员权限。因此,在应用程序启动时,我需要检查系统是否处于管理模式,如果不处于管理模式,我希望应用程序向用户显示一条消息,以更改为管理模式。如果服务具有拒绝管理员控制的自定义DACL,该怎么办?无论如何,您都需要正确地报告拒绝访问错误。应用程序是否也需要管理权限,还是只需要安装过程?您的意思是,如果当前登录的用户是管理员?如果当前进程以管理员权限运行?您需要什么功能?安装硬件?软件?即使是管理员模式也可能受到限制。我的目标是安装一个具有“Windows服务”和“Dpinst.exe”的应用程序,两者都需要管理员权限。因此,在应用程序启动时,我需要检查系统是否处于管理模式,如果不处于管理模式,我希望应用程序向用户显示一条消息,以更改为管理模式。如果服务具有拒绝管理员控制的自定义DACL,该怎么办?无论如何,您都需要正确地报告拒绝访问错误。应用程序是否也需要管理权限,还是只需要安装过程?实际上,问题不是“如何检测应用程序正在或将在其下运行的凭据”,而是“如何检查当前用户是否具有管理权限”。@mox,如果您查看问题下方的注释,您将看到他们真正想要的是始终以管理员权限运行其程序。检查权限级别的唯一原因是弹出一个错误框,Windows将自动为您执行此操作。实际上,问题不是“如何检测应用程序正在或将在其下运行的凭据”,而是“如何检查当前用户是否具有管理权限”。@mox,如果您查看问题下方的注释,您将看到他们真正想要的是始终以管理员权限运行其程序。检查权限级别的唯一原因是抛出一个错误框,Windows将自动为您执行此操作。