关于无法删除HKEY_LOCAL_MACHINE下子项的疑问……

ghost5216 2017-06-20 03:18:33
先说下背景,64位win7,“删除”是指用程序代码删除,而不是人为用鼠标操作注册表。删除其他注册表项目下的子项是没问题的,如HKEY_CURRENT_USER。

下面说过程,原本用Installshield制作的安装程序,在安装执行到“完成”界面时,使用Custom Action调用批处理,批处理文件中删除注册表项是没问题的。
只是需求变化了(苦逼啊),客户要求静默安装,使用Installshield的静默安装模式,发现不再响应Custom Action,所以批处理也就不再调用,无法删除注册表项。

于是打算在运行程序里删除,使用了CreateProcess winexec等等方法,均无法删除。我在运行程序中调用批处理,也无法删除。不知道InstallShiled是怎么实现的,为什么它制造的安装包调用批处理就能实现功能……

程序都是32位的。

求大神指教啊
...全文
503 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-06-20
  • 打赏
  • 举报
回复
引用 4 楼 ghost5216 的回复:
[quote=引用 3 楼 zhao4zhong1 的回复:] 64 位 Windows 平台注意点之注册表重定向 http://www.cnblogs.com/jiake/p/4956218.html
感谢赵4老师 您的艺名是尼古拉斯吗[/quote] 不是。
三岁、就很帅 2017-06-20
  • 打赏
  • 举报
回复
静默安装就是用户不用点 你从头到尾按照你的默认安装方式给他安装,跟批处理有什么关系么,就算你要删除注册表,你也可以自动啊 不用用户去点击啊
ghost5216 2017-06-20
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
64 位 Windows 平台注意点之注册表重定向 http://www.cnblogs.com/jiake/p/4956218.html
感谢赵4老师 您的艺名是尼古拉斯吗
赵4老师 2017-06-20
  • 打赏
  • 举报
回复
64 位 Windows 平台注意点之注册表重定向 http://www.cnblogs.com/jiake/p/4956218.html
ghost5216 2017-06-20
  • 打赏
  • 举报
回复
引用 1 楼 swwllx 的回复:
在installshied的脚本里面 自己添加代码针对注册表的动作
能具体点吗 我用的是2015 limited 我其实就是想把Installshield默认添加的注册表信息删除掉 reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{123456-FE79-4E60-854B-002557CB7890}" /f HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{123456-FE79-4E60-854B-002557CB7890} 这个注册表信息不是我主动添加,想删掉。
三岁、就很帅 2017-06-20
  • 打赏
  • 举报
回复
在installshied的脚本里面 自己添加代码针对注册表的动作
pywin32_Python2.7(x64&x86).rar访问windows系统API的库 访问windows系统API的库 接下来我们再用一个程序来演示一下用python写win32的程序是多么简单,修改IE。 我们采用的是修改注册表的方式,那么首先我们要对注册表进行一个简短的介绍。打开注册表:win+r, regedit,注册表的管理是按照文件夹的形式的。 注册表总共有五项: HKEY_CLASSES_ROOT是HKEY_LOCAL_MACHINE\Software的子项,保存打开文件所对应的应用程序信息 HKEY_CURRENT_USER是HKEY_USERS的子项,保存当前用户的配置信息 HKEY_LOCAL_MACHINE保存计算机的配置信息,针对所有用户 HKEY_USERS保存计算机上的所有以活动方式加载的用户配置文件 HKEY_CURRENT_CONFIG保存计算机的硬件配置文件信息 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Start Page 项保存的是IE的主页地址。 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Window Title 项保存的是IE的标题栏。 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Search Page 项保存的是IE默认的搜索页。 我们假设你已熟悉win32编程,所以直接上代码。 import win32api import win32con keyname='Software\Microsoft\Internet Explorer\Main' page = 'www.linuxidc.net' title = 'I love sina web site!' search_page = 'http://www.linuxidc.com' key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER, keyname, 0, win32con.KEY_ALL_ACCESS) win32api.RegSetValueEx(key, 'Start Page', 0, win32con.REG_SZ, page) win32api.RegSetValueEx(key, 'Window Title', 0, win32con.REG_SZ, title) win32api.RegSetValueEx(key, 'Search Page', 0, win32con.REG_SZ, search_page)

16,470

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧