如何禁止安装Cab包时选择安装在存储卡

    大家都知道,当您在Windows Mobile机器上安装程序时,如果机器上装有存储卡,会弹出一个窗口让您选择安装路径,即本机或存储卡上。但是,有时候,可能由于我们应用的特殊性,并不希望用户将软件安装在存储卡上,那么该如何去做呢?

       其实,微软的SDK已经给出了答案,在“Adaptation Kit User 's Guide  > Utilities  > CAB Wizard  > Information File  > Device-Side Application Installation Options”中,微软写到:

       To disable user-selected installation volume prompting Do not specify an %installdir% variable in the [CEStrings] section of the .inf file. If this variable is not found, the device will not prompt the user. 

       我们通常在编写打Cab包的inf文件时,都会在[CEStrings] 下定义%InstallDir%,如:

       [CEStrings]

InstallDir  = %CE1%/%ProviderStr%/%AppName%

AppName     = "Test"

 

这时,当安装Cab包时,发现有InstallDir,机器又安装了存储卡时就会提示用户选择是否安装于存储卡,那么我们要做的就是不给InstallDir赋值,即删去上面那句,

[CEStrings]

AppName     = "Test"

 

这样即使机器上安装了存储卡,那么安装Cab包时也会直接安装于本机[DefaultInstall][DestinationDirs]配置的位置。

但是,这样做要特别注意的是,对于控制安装进程的Setup.dll的编写,在编写该DLL时,我们常常用到“LPCTSTR     pszInstallDir”这个参数,因为它标识了Cab包安装时软件实际安装的路径。即InstallDir指定的路径或者存储卡下InstallDir指定的路径,但是现在由于没有指定InstallDir,故pszInstallDir将始终为空值,在代码里要相应调整。其实,既然已经强制安装了,那么路径实际上已经固定,也就可以用些常量来表示路径了。

看技术看累的吧,快去我的非技术Blog--猫思猫想(http://hi.baidu.com/doglovecat

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值