给一个软件编写了一个安装程序,如何为该软件添加自动卸载程序功能???谢谢赐教(100)

  • 主题发起人 主题发起人 mazheng
  • 开始时间 开始时间
M

mazheng

Unregistered / Unconfirmed
GUEST, unregistred user!
给一个软件编写了一个安装程序,如何为该软件添加自动卸载程序功能。及通过‘添加或删除程序’调用卸载程序卸载该软件
 
使用现成的通用安装程序(开源的)inno setup
 
就按楼上的 你去下载个通用程序安装程序吧
 
不用自己写安装程序阿。用WISE等任何一种工具都行阿。
 
佩服呀,自己写安装程序,真有时间。你做出来,别忘了共享一下(免费)。
 
//卸载信息写入注册表和ini文件 ARegistry := TRegistry.Create; try with ARegistry do begin RootKey := HKEY_LOCAL_MACHINE; //HKEY_LOCAL_MACHINE if OpenKey('SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/' + SoftName + '/', True) then begin Fini := TIniFile.Create(InIUninName); try WriteString('DisplayName', '卸载' + SoftName); WriteString('UninstallString', SetupPath + SoftDir + '/uninst32.exe'); Regi := 2; //关键词数量 // ShowMessage('注册表' + IntToStr(Regi)); Fini.WriteInteger('RegList', 'Regi', Regi); Fini.WriteString('RegList', 'RegS1', 'HKEY_LOCAL_MACHINE,' + 'SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/' + SoftName + '/,' + 'UninstallString'); Fini.WriteString('RegList', 'RegS2', 'HKEY_LOCAL_MACHINE,' + 'SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/' + SoftName + '/,' + 'DisplayName'); RegKi := 1; //主键数量 Fini.WriteInteger('RegList', 'RegKi', RegKi); Fini.WriteString('RegList', 'RegKS1', 'HKEY_LOCAL_MACHINE,' + 'SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/' + SoftName + '/'); finally Fini.Free; end; end; end; finally ARegistry.CloseKey; //关闭主键 ARegistry.Free; end;{在我的安装程序中截一段代码给你参考,写入注册表就可以在'添加或删除程序’找到这个卸载软件,你自己要先要做一个卸载的exe,如写了一个uninst32.exe}
 
用inno setup 没这没麻烦吧;-------------------------------- 桌面快递安装脚本---------------------------------------------;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;[Setup]AppName=桌面快递AppVerName=桌面快递 V0.8;这个指示的值用是在向导的选择开始菜单文件夹页中使用的默认开始菜单文件夹名。;如果这个指示是空白或未指定,它将用“默认”作为名字DefaultDirName={pf}/DesktopExpressAppPublisher=首都在线; Since no icons will be created in "{group}", we don't need the wizard; to ask for a Start Menu folder name:DefaultGroupName=桌面快递 V0.8;指定“自述”文件名 (可选),用 .txt 或 .rtf (富文本) 格式,用于在安装完成后显示;InfoAfterFile=D:/DesktopSoftware/InfoAfterFile.txtDisableProgramGroupPage=yes;Compression=yesSolidCompression=yesUninstallDisplayIcon={app}/Uninstall.exeOutputDir=D:/Desktop安装程序LicenseFile=D:/DesktopSoftware/InfoAfterFile.txt[Tasks]Name: "desktopicon"; Description: "创建桌面快捷方式"; GroupDescription: "添加快捷方式:"; Flags: checkedonceName: "quicklaunchicon"; Description: "添加到快速启动栏"; GroupDescription: "添加快捷方式:"; Flags: checkedonce;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;[Files];这是定义安装程序安装文件到用户系统中的可选文件段;软件本身包含的文件外,还必须包含相关的链接库;以下即软件本身的文件,注:安装目录下有一个 "/Data" 的子目录;Bin DirSource: "D:/DesktopSoftware/Client/bin/DesktopSoftware.EXE"; DestDir: "{app}"; Flags: ignoreversionSource: "D:/DesktopSoftware/Client/bin/Desktop.ini"; DestDir: "{app}"; Flags: ignoreversionSource: "D:/DesktopSoftware/Client/bin/UnDownload.xml"; DestDir: "{app}"; Flags: ignoreversionSource: "D:/DesktopSoftware/Client/bin/duping.scr"; DestDir: "{app}"; Flags: ignoreversion;Download DirSource: "D:/DesktopSoftware/Client/bin/Download/DesktopPic/*"; DestDir: "{app}/Download/DesktopPic"; Flags: ignoreversionSource: "D:/DesktopSoftware/Client/bin/Download/Desktop_New.xml"; DestDir: "{app}/Download"; Flags: ignoreversionSource: "D:/DesktopSoftware/Client/bin/Download/Desktop_Old.xml"; DestDir: "{app}/Download"; Flags: ignoreversionSource: "D:/DesktopSoftware/MyIcon.ico"; DestDir: "{app}"; Flags: ignoreversion;Client Dir;Source: "D:/DesktopSoftware/使用须知"; DestDir: "{app}"; Flags: isreadme;Skin;Source: "D:/DesktopSoftware/Client/Skin/*"; DestDir: "{app}/Client/Skin"; Flags: ignoreversion; 注意: 不要在任何共享系统文件中使用“Flags: ignoreversion”;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;[Dirs]Name: "{app}/Download/DesktopPic"[Icons];这个可选段定义所有创建在开始菜单和/或其它位置 (比如桌面) 的快捷方式;桌面快捷方式;Name: "{commondesktop}/桌面快递"; Filename: "{app}/DesktopSoftware.EXE";IconFilename: "{app}/myicon.ico";添加到快速启动栏;Name: "{quicklaunch}/桌面快递"; Filename: "{app}/Client/Bin/DesktopSoftware.EXE";IconFilename: "{app}/Bin/myicon.ico"Name: "{group}/卸载桌面快递"; Filename: "{uninstallexe}"Name: "{userappdata}/Microsoft/Internet Explorer/Quick Launch/桌面快递"; Filename: "{app}/DesktopSoftware.EXE"; WorkingDir: "{app}/bin"; Tasks: "quicklaunchicon";Name: "{group}/桌面快递"; Filename: "{app}/DesktopSoftware.EXE"Name: "{userdesktop}/桌面快递"; Filename: "{app}/DesktopSoftware.EXE"; Tasks: desktopicon[Run]Filename: "{app}/DesktopSoftware.EXE"; Description: "运行<桌面快递>"; Flags: nowait postinstall skipifsilent[UninstallDelete]Type: filesandordirs; Name: "{app}/*"、、、、、、、、、、、、、、、、、、、[UninstallDelete]Type: filesandordirs; Name: "{app}/*" 这就是卸载的代码。。 以上所有路径到要改。
 

Similar threads

D
回复
0
查看
778
DelphiTeacher的专栏
D
D
回复
0
查看
818
DelphiTeacher的专栏
D
D
回复
0
查看
649
DelphiTeacher的专栏
D
后退
顶部