Inno Setup打包技巧(开机启动,卸载按键,再次安装无法选其他目录)

修改.iss配置文件即可

1.设置开机启动

在对应模块中加入代码,在安装时候默认勾选开机启动了

[Tasks]
Name: "startupicon"; Description: "开机启动"; GroupDescription: "{cm:AdditionalIcons}"; 
[Icons]
Name: "{commonstartup}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: startupicon
[Registry] 
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run";ValueType: string; ValueName: "testrun";ValueData: "{app}\{#MyAppExeName}" 

2.把uninstall卸载功能 改为 ‘卸载.exe’

在对应模块中加入代码,注意在 [UninstallRun] 要杀死已经启动程序后,才能卸载哦
如果本机有多个java程序可以吧 jdk/bin/java.exe 可以改为 其他名称比如 javaNew.exe,然后就杀死 javaNew.exe好了。最后要停止mysql服务


[UninstallRun]
Filename: "cmd.exe"; Parameters: "/C taskkill /F /IM java.exe"; Flags: runhidden
Filename: "cmd.exe"; Parameters: "/C sc stop mysql"; Flags: runhidden
Filename: "cmd.exe"; Parameters: "/C sc delete mysql force"; Flags: runhidden
Filename: "cmd.exe"; Parameters: "/C taskkill /IM 启动.exe /F"; Flags: runhidden[UninstallDelete]
Type: filesandordirs; Name: "{app}"[CODE]
procedure CurStepChanged(CurStep: TSetupStep);
var
uninspath, uninsname, NewUninsName, MyAppName: string;
begin
if CurStep=ssDone then
begin
// 指定新的卸载文件名(不包含扩展名),请相应修改!
NewUninsName := '卸载';
// 应用程序名称,与 [SEUTP] 段的 AppName 必须一致,请相应修改!
MyAppName := 'myPro';
// 以下重命名卸载文件
uninspath:= ExtractFilePath(ExpandConstant('{uninstallexe}'));
uninsname:= Copy(ExtractFileName(ExpandConstant('{uninstallexe}')),1,8);
RenameFile(uninspath + uninsname + '.exe', uninspath + NewUninsName + '.exe');
RenameFile(uninspath + uninsname + '.dat', uninspath + NewUninsName + '.dat');
// 以下修改相应的注册表内容
if RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1') then
begin
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1', 'UninstallString', '"' + uninspath + NewUninsName + '.exe"');
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + MyAppName + '_is1', 'QuietUninstallString', '"' + uninspath + NewUninsName + '.exe" /SILENT');
end;
end;
end;

3.再次安装时候 重新选择其他目录(取消默认安装目录)

在对应模块中加入代码,

[Setup]
UsePreviousAppDir=no

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/32848.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

毫米波移动通信系统中的波束赋形

在毫米波移动通信系统中,系统的频点较高,因此毫米波系统的射频器件易于小型化,然而同时也带来绕射能力差、穿透损耗大、路径损耗大[4][5]等缺点,这将大大降低了毫米波通信系统的接收功率,其中阻挡效应被认为是制约毫米…

MVVM架构详解:前端开发的理想选择

目录 前言1. MVVM架构概述1.1 MVVM架构的定义1.2 MVVM与MVC的区别 2. MVVM架构的核心组件2.1 模型(Model)2.2 视图(View)2.3 视图模型(ViewModel) 3. MVVM架构的优势3.1 分离关注点3.2 提高代码可测试性3.3…

代码随想录训练营Day38

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、斐波那契数列二、爬楼梯三、使用最小花费爬楼梯 前言 今天是跟着代码随想录刷题的第38天,主要学习了斐波那契数列、爬楼梯和使用最小花费爬楼梯…

AI大模型企业应用实战(14)-langchain的Embedding

1 安装依赖 ! pip install --upgrade langchain ! pip install --upgrade openai0.27.8 ! pip install -U langchain-openai ! pip show openai ! pip show langchain ! pip show langchain-openai 2 Embed_documents # 1. 导入所需的库 from langchain_openai import Open…

suuk-s.php.jpg-python 库劫持

做virtualBox的端口映射吧 suukmedim文件白名单绕过、反弹shell、$paht环境变量更改、python 库劫持提权、Reptile提权、sandfly-processdecloak使用 服务扫描 ┌──(kali㉿kali)-[~] └─$ sudo nmap -sV -A -T 4 -p 22,80 192.168.18.238GetSHell 访问80http://192.168.…

安全基础考核总结

黑客攻击路径 1、掌握网络安全CIA原则的基本定义 2、掌握常见的网络安全术语 3、掌握黑客攻击路径 黑客攻击路径-CSDN博客4、了解黑客攻击路径中配套的攻击手段和工具 暂未总结好,也未找到合适的文章,后续补充吧5、了解常见的网络安全风险 我认为就是…

嵌入式中逻辑分析仪与示波器的基本原理

大家好,今天主要给大家分享一下,嵌入式中如何使用逻辑分析仪和示波器的方法,希望对大家有所帮助。 https://dreamsourcelab.cn/ 第一:什么是逻辑分析仪 是否遇到使用示波器分析数字电路的冏境:深度不够,时间太短,无法抓到想要的波形,没有协议内容解析? 逻辑分析仪…

使用构建缓存优化 Docker 镜像构建

使用构建缓存优化 Docker 镜像构建 目录 实践构建应用程序额外资源后续步骤 假设一个简单的nodejs程序的 Dockerfile如下: FROM node:20-alpine WORKDIR /app COPY . . RUN yarn install --production CMD ["node", "./src/index.js"]当你运…

Pnpm:包管理的新星,如何颠覆 Npm 和 Yarn

在探索现代 JavaScript 生态系统时,我们常常会遇到新兴技术的快速迭代和改进。其中,包管理工具的发展尤为重要,因为它们直接影响开发效率和项目性能。最近,pnpm 作为一种新的包管理工具引起了广泛关注。它不仅挑战了传统工具如 np…

vue3路由的使用

1、引用路由组件 npm install vue-router 2、创建路由 根据项目结构创建对应的组件(home\news\about) 在 src 目录下创建 router/index.ts //引入路由 import { createRouter,createWebHistory,createWebHashHistory } from vue-router import Home …

總結光學(完)

參考: 陈曦<<光学讲义>>http://ithatron.phys.tsinghua.edu.cn/downloads/optics.pdf 1 波动光学 最简单的一种波是平面波。........... 一个波的波前是指相位相同的点构成的面。波的传播方向垂直于波面。 我们在此将讨论的光波特指波长远大于原子尺度又远小于…

关于Pytorch转换为MindSpore的一点建议

一、事先准备 必须要对Mindspore有一些了解&#xff0c;因为这个框架确实有些和其它流程不一样的地方&#xff0c;比如算子计算、训练过程中的自动微分&#xff0c;所以这两个课程要好好过一遍&#xff0c;官网介绍文档最好也要过一遍 1、零基础Mindspore&#xff1a;https://…

学生作业管理系统设计文档

一、项目概述 本系统设计文档旨在为学生作业管理系统提供一个全面的设计方案。该系统旨在提高作业管理的效率&#xff0c;减轻教师的工作负担&#xff0c;并为学生提供一个清晰、便捷的作业提交和查看平台。系统需具备作业发布、作业提交、作业批改、成绩查看等基本功能&#…

linux服务器运行pycharm代码

一、pycharm代码上传服务器 1、进行配置 2、建立ssh连接&#xff08;选择文件传输协议SFTP&#xff09; 3、设置服务器名&#xff08;自定义&#xff09; 4、点击SSH配置右侧的"…"&#xff0c;进行SSH内容设置&#xff1a; 5、输入服务器信息 6、进行本地项目与远程…

AIGC系列之一-一文理解什么是Embedding嵌入技术

摘要&#xff1a;嵌入技术&#xff08;Embedding&#xff09;是一种将高维数据映射到低维空间的技术&#xff0c;在人工智能与图形学研究中被广泛应用。本文将介绍嵌入技术的基本概念、原理以及在 AIGC&#xff08;Artificial Intelligence and Graphics Computing&#xff09;…

基于STM32的智能农业灌溉系统

目录 引言环境准备智能农业灌溉系统基础代码实现&#xff1a;实现智能农业灌溉系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统实现4.4 用户界面与数据可视化应用场景&#xff1a;智能农业管理与优化问题解决方案与优化收尾与总结 1. 引言 智能农业灌溉系统通过使用ST…

FPGA学习网站推荐

FPGA学习网站推荐 本文首发于公众号&#xff1a;FPGA开源工坊 引言 FPGA的学习主要分为以下两部分 语法领域内知识 做FPGA开发肯定要首先去学习相应的编程语言&#xff0c;FPGA开发目前在国内采用最多的就是使用Verilog做开发&#xff0c;其次还有一些遗留下来的项目会采用…

智慧校园综合门户有哪些特点?

智慧校园的门户系统&#xff0c;作为整个智慧校园架构的门户窗口&#xff0c;扮演着至关重要的角色。它如同一座桥梁&#xff0c;将校园内的各种信息资源、应用服务以及管理功能紧密相连&#xff0c;为师生、家长及管理人员提供了一个集中访问的便捷通道。智慧校园门户的设计理…

TDengine 签约红有软件,加速油田信息化进程

在数字化浪潮席卷全球的今天&#xff0c;油田信息化建设已成为提升油气生产效率和管理水平的重要途径。作为中国油田信息化领域的领军企业&#xff0c;红有软件股份有限公司通过其自主研发的信息化基础开发平台&#xff0c;已经成功助力多个油气田项目实现数字化转型&#xff0…