WIN10应用程序自启动功能及InstallShield读写64位系统注册表相关问题的解决

xiaoxiao2025-06-14  24

1. 问题:应用程序需要随系统启动,同时该应用程序也需要获得管理员权限才可以运行,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run位置,设置了相关启动项,发现无法随机启动。发现,若应用程序不获得管理员权限下,即UAC等级一般下,可以正常随操作系统启动。若设置UAC的等级为管理员,则不能随操作系统启动。

解决方法:利用一个UAC一般的程序,设置其随操作系统启动,启动后,将业务用的应用程序启动。

2.问题: InstallShield2015生成的安装包是X32位的,尽管其安装的目标应用程序是X64的。出现的问题是,在InstallShield的脚本文件中,利用了RegDBSetDefaultRoot  RegDBDeleteValue两个函数操作注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,发现RegDBDeleteValue执行失败。

 发现:其真正操作的是计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run注册表。在此,大家可以搜索WOW6432Node相关资料学习。解决方法也就简单了:

解决方法:

  在操作注册表前,增加:REGDB_OPTIONS = REGDB_OPTIONS | REGDB_OPTION_WOW64_64KEY; 

  在操作注册表后,增加:REGDB_OPTIONS = REGDB_OPTIONS & ~REGDB_OPTION_WOW64_64KEY;

 

转载请注明原文地址: https://www.6miu.com/read-5031829.html

最新回复(0)