最近一直在整U盘监控的程序 期间学到了不少 一是安装程序的制作 用的是GPBuilder 感觉还不错
二是U盘插拔的响应 目前用后台持续遍历磁盘和响应U盘插拔消息两种方法来实现 三就是在UAC方面的研究 由于Vista UAC机制 自己的程序 在进行某些注册表操作时 没法实现 我就开始想 怎样申请UAC 让用户允许管理员身份操作 网上的大部分方法就是 通过插入manifest资源来实现 我研究了大半天 总算把它给实现了 意外发现是 原来还可以用这种方法让VC的程序拥有XP风格 于是自己组合了下 两种manifest文件 既实现了XP风格 也实现了 申请UAC
分享下manifest的文件
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly
xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
processorArchitecture="x86"
version="5.1.0.0"
type="win32"
name="LC.exe"/> (这里的LC.exe 自己根据实际情况填写)
<description>Test Application</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="x86"/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
注意要在 rc文件中加上 1 24 LC.exe.manifest
本来以为 事情已经搞定 谁知又出意外
我是通过改注册表实现自启动的 结果在重启的时候 由于程序自动申请了管理员身份 又被UAC给阻止了 因为开机便以管理员身份启动 vista很慎重的采取了阻止 纠结。。。
我估计用服务的方式自启动或许会搞定这个问题 再说吧 要期末考试了 先复习个先。。。——