vista如何提示用户以管理员身份运行我的程序?

D0ckLng 2009-12-02 11:04:19
我自己写的程序,需要以管理员身份运行,否则会有拒绝访问的错误提示。
最好不要强行修改系统设置。
在必要的时候让用户确认一下也是可以的,但是不能让用户右键我的程序后选择“以管理员身份运行”。这种用户体验是不能容忍的了!
查了查,有使用manifest的方法,具体是怎么样的呢?
...全文
885 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ly_c_sin 2011-04-26
  • 打赏
  • 举报
回复
这个只适合08以上的版本
楼主你知道 在VS2005 上怎么实现吗 ?
zsdzzzy 2010-08-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 d0cking 的回复:]
楼上的方法把所有的exe的执行方式都改了.总觉得作为一个开发者管的闲事太多,凭什么把用户的系统改的乱糟糟的.
所以manifest的方法后,自己的程序多了个小盾牌,运行会提示用户是否允许以管理员身份运行.我更倾向于这样的实现.
同样感谢1楼..ps:你是女的?
[/Quote]

可否透露下 manifest如何实现的吗?可能我方法不对,相关信息比较少。。
yichijianfang 2009-12-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 d0cking 的回复:]
楼上的方法把所有的exe的执行方式都改了.总觉得作为一个开发者管的闲事太多,凭什么把用户的系统改的乱糟糟的.
所以manifest的方法后,自己的程序多了个小盾牌,运行会提示用户是否允许以管理员身份运行.我更倾向于这样的实现.
同样感谢1楼..ps:你是女的?
[/Quote]

怎么可能?
D0ckLng 2009-12-04
  • 打赏
  • 举报
回复
楼上的方法把所有的exe的执行方式都改了.总觉得作为一个开发者管的闲事太多,凭什么把用户的系统改的乱糟糟的.
所以manifest的方法后,自己的程序多了个小盾牌,运行会提示用户是否允许以管理员身份运行.我更倾向于这样的实现.
同样感谢1楼..ps:你是女的?
D0ckLng 2009-12-04
  • 打赏
  • 举报
回复
我使用manifest的方法解决了。
如果有同样问题的朋友,可以到网上搜索一下这个manifest
高版本的vs可以在linker->manifest里面找到一个默认为invoke的 改成requestAdministrator(以上可能有拼写错误)
yichijianfang 2009-12-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 d0cking 的回复:]
不能让用户右键我的程序后选择“以管理员身份运行”!
况且,导入注册表,还不得以管理员身份运行吗?
[/Quote]
你理解错了,“在文件上右击一下看看是不是多了一个以管理员身份运行选项!”这句话是告诉你,让你看看成功没,你可以不用管它!
yichijianfang 2009-12-02
  • 打赏
  • 举报
回复
如果你不喜欢这种方式的话,可以去下载一个windows7优化大师,那里面有这个功能!
yichijianfang 2009-12-02
  • 打赏
  • 举报
回复
不会,我试过了,出现的是uac提示“你允许下列程序对计算机的修改吗?”
D0ckLng 2009-12-02
  • 打赏
  • 举报
回复
不能让用户右键我的程序后选择“以管理员身份运行”!
况且,导入注册表,还不得以管理员身份运行吗?
yichijianfang 2009-12-02
  • 打赏
  • 举报
回复
Windows Registry Editor Version 5.00


[HKEY_CLASSES_ROOT\*\shell\runas]
@="管理员取得所有权"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"

[HKEY_CLASSES_ROOT\exefile\shell\runas2]
@="管理员取得所有权"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\exefile\shell\runas2\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"

[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="管理员取得所有权"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"


把上面的代码保存卫.reg格式的文件,然后双击导入注册表就可以了,在文件上右击一下看看是不是多了一个以管理员身份运行选项!

18,125

社区成员

发帖
与我相关
我的任务
社区描述
Windows客户端使用相关问题交流社区
社区管理员
  • Windows客户端使用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧