腾讯视频/爱奇艺/优酷/外卖 充值4折起
installshield 64位os打包注意事项
1、安装目录
64位系统下,安装目录分program files和program files(x86)。
64bit application会自动安装在program files下;
32bit application会自动安装在program files(x86)下。
2、系统目录
64位系统下,系统目录分system32和syswow64。
64bit ap 运行在system32下;
32bit ap 运行在syswow64下。
installshield打包注意事项:
问题:当32位的ap调用winsysdir变量时,会默认指向syswow64,就算是调用windir^"system32",也会被强迫指向syswow64。
解决:disable(wow64fsredirection)
wow64fsredirection:起着判断64位系统下调用哪个系统变量的作用,disable掉后,就会默认指向system32。
注意:当安装进行完后,记得enable(wow64fsredirection),以避免影响系统的其他程序。
经验:
在installing()事件中disable(wow64fsredirection);
在installed()事件中enable(wow64fsredirection);
这样整个安装过程就不用去考虑何时开关了。
同样,卸载的过程中也得在uninstalling()和uninstalled()中这样做,才会卸载掉对应的部分。
3、注册表
64位系统下,注册表分hkey_local_machinesoftwaremicrosoftwindowscurrentversionrun
和hkey_local_machinesoftwarewow6432nodemicrosoftwindowscurrentversionrun
让32bit ap注册在默认的注册表
hkey_local_machinesoftwaremicrosoftwindowscurrentversionrun中,命令:regdb_options = regdb_options | regdb_option_wow64_64key;
同时,用完也记得regdb_options = regdb_options & ~regdb_option_wow64_64key;
--------------------------
需要注意的是把与32位有关的目录,方法,都用64位的代替。这样就可以保证正确的安装到64位的目录下面。
1.regdb_options 让注册表函数在64位win系统上正确读写而非读写 6432node
regdb_options = regdb_options | regdb_option_wow64_64key;
regdb_options = regdb_options & ~regdb_option_wow64_64key;
2. 阅读 installshield 关于系统目录的 64的东西
3. 设置 compoment 为64 位
4. 。。。