我的应用程序安装版如何写入控制面板?

zhengsg1976 2003-08-19 07:12:14
我辛辛苦苦写了一年的程序,最近想做个安装程序,现在可以在桌面和程序中创建快捷方式,可就是不知道如何把它放入控制面板中,这将会使用户有不爽的感觉(卸载不便),各位仁兄,请多多关照,最好能给出几行代码并注释或者告诉一声到哪找资料,谢谢各位了!
...全文
152 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinx 2003-08-20
  • 打赏
  • 举报
回复
自己写要判断的条件比较多,比如操作系统类型之类,
不过写个简单的倒是不难,只需知道安装是要复制哪些文件到目标机器就行了,但是至少要事先获得目标机器的系统目录路径,因为好多共享的dll都需要拷到系统目录里,
还有就是拷贝共享dll时不能直接覆盖,因为原来用户可能已经有你要拷的dll了,而且版本比你的新,这时需要比较文件的版本,你的比较新才能覆盖,
拷贝系统dll时可能用户已有这个dll而且正在使用(如正打开了另外一个使用这个dll的软件),这时好像跳过拷贝操作就行了

拷贝自己的程序文件就好办了,只要覆盖就行

然后就是对注册表项的添加了,如:你想在控制面版的添加删除中加入你自己的程序,就要在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall下建一个子键,具体的内容你研究一下

一般的安装程序都会把文件的安装目录记录在注册表中,如果你也想记,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths下建一个子键写入内容就行,具体内容你也研究一下注册表结构吧

其他好像就没什么了

MFC中相关的类没有看到过,估计是没有,可能只能一点一点写了。
主要用到的就是文件操作的API和注册表操作的API等

yinx 2003-08-20
  • 打赏
  • 举报
回复
你需要在
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall下

1.建立一个主键,名字随便起
2.在这个主键下建立至少如下两个键值
DisplayName 内容是这一项在列表里显示的名称
UninstallString 内容为卸载程序的命令行

做完上面的,你就能在列表中看到你的项了
InstallShield的作法是在安装时写了一个log文件,估计记录了执行的操作,以及顺序
然后卸载程序按照反方向把拷贝的文件删除,添加的注册表键值删除(不过要注意如果是在已经存在的注册表键下新填一个键值则不能把上级键值删了)
注意一定要在卸载程序中把Uninstall的那个键删掉,要不然卸完了,在列表里还会有
mfc168 2003-08-20
  • 打赏
  • 举报
回复
除了注册表之外,我知道控制面板中每一个图标,对应一个cpl文件,水平有限,只能帮你到这里
zhengsg1976 2003-08-20
  • 打赏
  • 举报
回复
yinx(★什么时候才能变成红色的)再帮帮我!
fanfyj 2003-08-20
  • 打赏
  • 举报
回复
up
zhengsg1976 2003-08-20
  • 打赏
  • 举报
回复
yinx(★什么时候才能变成红色的)兄弟谢谢您,可是我还是看不懂您所说的,您能不能帮我做了简单的DEMO,或者帮我搞个例子什么的?
我现在可以按照您说的在注册表中写了(在注册表中能找到),不过到控制面板的添加/删除程序中还是找不到,不知道为什么?
我的信箱是:zsg1976@mail.china.com。
谢谢!
zhengsg1976 2003-08-19
  • 打赏
  • 举报
回复
我没有用任何工具,也没有用installshield,是想完全自己写代码完成,不知道各位有没有
做过此类似的尝试?
要用到什么相关的知识?比如MFC中有没有相关的类或Win32SDK中哪些函数?
谢谢!
yinx 2003-08-19
  • 打赏
  • 举报
回复
你是用install shield么,它会自动加在控制面版的添加删除里的
为了方便你还可以在开始菜单里放一个卸载链接

快捷方式的目标是"<WINSYSDIR>\IsUninst.exe" -f"<TARGETDIR>\Uninst.isu", 引号不能少! 。要是<WINSYSDIR>下没有IsUninst.exe,可以用安装包拷到那儿去一个
AkiraChing 2003-08-19
  • 打赏
  • 举报
回复
Wise for Windows Installer - Professional Edition
howtotell 2003-08-19
  • 打赏
  • 举报
回复
installshield or Visual studio.net

16,472

社区成员

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

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

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