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!