Vista下的UAC是什么? UAC UAC(User Account Control)就是用户帐户控制,是让普通用户不用注销切换用户而得到高权限的一种方法。 UAC在那里关系和打开? 开始菜单-〉控制面板-〉用户管理-〉打开或关闭“用户帐户控制” Run-〉Regedit-〉HKLM/Software/Microfte/windows/CurrentVerion/Policies/System->更改EnableLUA UAC会提升那些应用程序的权限? Setup,XXInstall,有Manifest的app。 完整性级别(Integrity levels) 这是一个新的添加到进程和安全描述符(security descriptor)上的授权特性。内核对象和资源(文件,文件夹)都有一个完整性级别。系统中每个进程都有一个完整性的标记,每个进程当访问某个资源的时候,系统会做等级的校对,主要体现在写操作上,读和运行操作没有这个限制。 如何使我们的程序能自动提升权限? 写Manifest文件: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="yourAPPName.exe.manifest" //这里把yourAPPName替换成你的app type="win32" /> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly> 你可以包这个文件保存成yourAPPName.exe.manifest放在和你的app同一个目录,在vista下运行时就会提示你是否允许提升权限。最简单的方法: 打开你的项目,在资源上添加一个24类型自定义二进制资源,并把上面的代码copy到该资源里,然后再你的resource.h把该资源的id更改为1,重新编译,你的app到vista下降多一个盾牌了!作者: wangweixing2000转载说明出处!Thanks!