遇到win 7下权限限制,对c:/program files下的自己的配置文件.ini做修改时,系统会自动复制到c:/users/用户名/AppData/Local/VirtualStore/Program Files/***/***.ini下面,并做修改,然后会自动读取,但是如果以管理员身份运行则不会这样,网上找到用管理员身份打开Exe方法如下:
-
C/C++ code
-
VC编译出来的应用程序在vista下运行,有可能因为权限问题,不能成功运行。 用以下办法,给应用程序添加一个manifest文件,程序运行时系统就会跳出UAC对话框,获得管理权限。 1 .打开应用程序的源代码工程 2 .添加一个“custom”资源, " resource type " 填24,把资源ID改为1,然后把以下内容复制到资源内容中保存 <? 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 = " mulitray.exe.manifest " type = " win32 " /> < trustInfo xmlns = " urn:schemas-microsoft-com:asm.v3 " > < security > < requestedPrivileges > < requestedExecutionLevel level = " requireAdministrator " uiAccess = " false " /> </ requestedPrivileges > </ security > </ trustInfo > </ assembly > 3 .重新编译应用程序,此时会发现,广用程序的图标在vista下会多出一个小盾标志。
不使用manifest的话也可以用这个方法
在Windows Vista里面,ShellExecuteExW lpVerb的参数可以传入runas命令,使得系统调用 ShellExecuteExW 的时候
会强制将目标文件以完全admin模式启动,即使目标文件的manifest没有申明需要完全admin权限。
效果等同于在目标程序上右键点击,然后选择 run as administrator 菜单内容。