代码实现 程序默认以管理员身份运行
2009-08-20 15:46
411 查看
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 菜单内容。
用以下办法,给应用程序添加一个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 菜单内容。
相关文章推荐
- C#默认以管理员身份运行程序实现代码
- C#默认以管理员身份运行程序实现代码
- C# 默认管理员身份运行程序
- C#默认以管理员身份运行程序
- C#默认以管理员身份运行程序
- C#默认以管理员身份运行程序
- [Winform]默认以管理员身份运行程序
- Winform程序在win7中默认以管理员身份运行
- C#默认以管理员身份运行程序
- C#用代码默认让程序以管理员权限运行
- WinForm 代码实现以管理员身份运行
- C#默认以管理员身份运行程序
- C#默认以管理员身份运行程序
- vs2003生成的程序,启动默认以管理员身份运行
- 如何设置程序默认“以管理员身份运行”
- 【VS开发】win7下让程序默认以管理员身份运行
- WinForm 代码实现以管理员身份运行
- C#中用管理员身份运行程序代码实例
- [技巧.Dotnet]简单操作,实现强制.net程序以管理员身份运行。