能力值:
( LV13,RANK:410 )
|
-
-
2 楼
关注………………
|
能力值:
( LV9,RANK:490 )
|
-
-
3 楼
打个广告http://netroc682.spaces.live.com/blog/cns!B5DFB0F15D61E843!126.entry
简单来说,如果UAC是打开的,那么不管你驱动有没有签名,动态安装都需要管理员权限,因为和Service相关的函数需要。如果UAC关闭,动态安装的操作应该和XP下是一样的。
为了改善用户体验,一般有两个途径:
1、把你需要权限提升的模块作为单独程序,并且在manifest中标注需要权限,或者在模块名、资源等中间包含关键字。例如安装驱动的操作,可以由单独外部程序来做,在你需要动态更新的时候,就ShellExecute它,这样会自动弹出提升权限的确认对话框(要注意的是使用CreateProcess是直接失败,而不是要求权限,用CreateProcess的办法还在研究中……)。
2、使用COM组件。运行中提升权限可以将需要权限的代码放到一个COM组件中,可以运行时要求权限。这个没有实际做过,主要是讨厌COM。可以参考下MS的文档。
以上两个方法都是会谈出确认窗口的,由于安装卸载驱动的操作一般都比较少,隔离开之后你的主程序就不用每次都需要权限,也避免把用户搞得晕头转向。
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
给M$钱,做HQTL啥的,就可以拿个数字签名,以后写驱动的苦了。
|
|
|