用InstallShield打包 在用户选择的安装目录后面追加路径的问题

C# installshield2020项目部署打包详细教程 installshield2020打包教程 文章目录installshield2020打包教程一、打开软件建个工程二、设置项目三、开始打包四、程序安装测试 一、打开软件建个工程 New->Windows Installer->Basic MSI->Project Name->location 二、设置项目 ​ 工程建好后,如果没有 1 Project Assistant选项卡,那么选择2 VIEW选项卡中的 Project Assistant 调出该选项。 三、开始打包 ​ 点击 阅读详情

     InstallShild选择安装目录主要涉及到SdAskDestPath 和SdAskDestPath2函数。

 

     这两个函数功能貌似差不多,当点击窗口上的“浏览”按钮时,又调用SelectDirNoLog(也可以是SelectDir)方法弹出选择文件夹的对话框,并返回用户选择的结果。

 

     如果想在用户选择的目录后面追加上公司名称等目录(这样做还有一个好处,当用户直接选择安装在磁盘根目录下的时候,仍然可以再追加一个目录而不是直接把各种文件释放到根目录中,显得十分混乱),可以在SelectDir返回之后,在得到的路径后面添加上自己的目录。不过要注意检查是否有重复的问题。在用户选择目录之前一般都会有一个默认的安装路径,SelectDir返回之后应检查一下返回的结果与默认值是否相同,如果不同的话再在用户选择的路径后面追加上公司名。

     不过考虑的许多软件的默认安装路径都是C:/Program Files/公司名/产品名,而用户可能是直接把盘符改为D,所以应该对这种情况作出判断,避免D:/Program Files/公司名/产品名/公司名/产品名…… 这样的结果。再扩展一下的话,如果用户已经手动创建了目录,例如在

E:/软件/公司名/产品名;然后在浏览对话框里选择了这个目录,我们也应该能够识别。

 


具体的可以参考以下代码:

修改前的代码

修改后

 

     把重写后的SdAsdDestPath文件取一个名字,例如MyAskDestPathDlg.rul,函数名叫做MyAskDestPath,然后在主程序里加上#include "MyAskDestPath.rul",然后在以前调用SdAskDestPath2的地方调用自己的函数就可以实现在用户选择的目录后面追加公司名称的效果了。

 

PS:
SdAskDestPath和SdAskDestPath2以及其他大量系统方法的代码可以在InstallShield安装目录下的 ./InstallShield X/Script/isrt/src 目录中找到。

 

 

附:SdAskDestPath2Dlg.h源码


 

 

 

以上是我总结的关于InstallShield制作安装包时,在用户选择的目录后面追加一个目录的解决方法,比较简单。欢迎大家批评指教或转帖。

转帖请注明出处 http://blog.youkuaiyun.com/icycode/archive/2009/12/01/4916392.aspx

软件安装包制作工具installshield 2020 R1的安装教程 installshield2020安装教程 软件介绍 installshield是一款用于Windows的软件安装包制作工具,当写完一个软件进行发布时,先要将软件打包成一个安装包,才能方便用户的安装。详细介绍参考百度或官网,目前关于软件安装包制作工具还有Inno Setup、NSIS等,这些都是开源免费的,但installshield是一款较为专业的安装包制作工具,拥有较好的用户体验,同时也用于Visual Studio中的软件打包,当然这款软件也是收费的。具体下载安装教程如下。 软件下载安装 1、inst 阅读详情

相关推荐

InstallShield使用完全教程

InstallShield 是一款功能强大的软件安装程序创建工具,广泛用于 Windows 应用程序的打包和部署。下面是 InstallShield 的基本使用教程,包括安装、项目创建、设置和生成安装包的步骤。下载 InstallShield:运行安装程序:激活产品:启动 InstallShield:选择项目类型:设置项目属性:添加文件:设置安装路径:组件设置:功能设置:用户界面:自定义对话框:注册表:快捷方式:设置运行条件:自定义操作:构建项目:输出文件:安装测试:修复与重新安装功能:准备发布:文档与支持

qq_25699299的博客 6534

InstallShield——指定多个安装目录

<br />假设要制作一个安装包, 该安装包分为程序部分和数据库部分,需要让用户指定这两个部分的安装路径,制作实例如下:<br />版本:InstallShield12 Premier Edition<br />InstallShield项目类型:InstallScript Project<br /> <br />操作步骤:<br />1、建立应用程序的目录:在“Application Target Folder”下建立目录,此处建立的目录将安装在TARGETDIR下,而TARGETDIR是通过“Dlg_S

JessieLee_YoYo的专栏 5118

【BAAS】基于supabase的知识库详细设计

为满足快速开发需要和减少开发及维护成本,使用BAAS(Backend-as-a-Service)模式可以很好的降低我们的后端维护成本,并提高前端对接效率。一般来说,BAAS是一种云服务模式,BaaS供应商会为提供一些通用的能力,例如用户身份验证、数据库管理、远程更新和推送通知(针对移动应用程序),以及云存储和自托管。BaaS最主流的是Google的firebase,具有相当完善的功能和集成方案,但他是收费的,而且在我们实际项目中,可能需要私有化部署,这时就需要一些开源的替代方案,例如主流的。

Ric的博客 1781

如何在installshield中指定自己的安装目录

在“Script-defined Folders”下建立一个变量,如“”,注意,这个变量要用“”括起来.添加目录后,可以在Organization中的Components中其中“Files6”为“Script-defined Folders”生成的组件:注意它的“Destination”值为“”在Setup.Rul中添加改变目录值的语句   //改变自定义目录的值 Comp

carl2380的专栏 4158

想发故障诊断论文?手把手教你用CWRU数据集复现第一个Baseline模型

本文提供了一份基于CWRU轴承数据集的故障诊断Baseline模型实战指南,手把手教你从数据准备到模型构建的全流程。通过详细的Python代码示例和学术级实验设计,帮助初学者快速复现第一个故障诊断模型,为发表高质量论文奠定基础。

weixin_28681255的博客 428

FPGA_adc采样并通过以太网发送到上位机

本项目使用FPGA-ZYNQ-7020采集8通道ADC数据,通过以太网上传到上位机显示波形PL部分包括数据的获取与处理,数据从PL传递到PSPS部分包括以太网的发送,由PL到PS的中断触发本文章不详细讲解背后原理 但保证每一步足够详细,跟着就能实现。本人FPGA平台 大磊FPGA7020开发板 vivado2020.2 vitis2020.2 匿名上位机公开版

weixin_42304868的博客 5626

InstallShield默认安装路径改为C盘根目录

前言: 转载请附上连接,本帖原创请勿照抄。 流程 InstallShield->新建InstallScript MSI Project工程->打开General Information->INSTALLDIR->答案在最下面 详细操作步骤: 1.新建项目 2.添加文件 3.进入设置界面修改 完成后的界面 4.生成安装可以看到它的默认...

断点 2474

Qt 5.12.8在Linux下编译qtvirtualkeyboard模块,我踩过的那些坑(附完整解决方案)

本文详细介绍了在Linux系统下为Qt 5.12.8单独编译qtvirtualkeyboard模块的完整解决方案。通过分析模块缺失原因、提供精准的编译步骤和常见问题处理,帮助开发者高效解决虚拟键盘模块缺失问题,避免重新编译整个Qt源码的繁琐过程。

weixin_29248611的博客 458

InstallShield内部库函数之4 内部对话框函数

InstallShield内部库函数之4  内部对话框函数   下列函数创建简单对话框,如Yes/No对话框和消息框。一些函数允许你简单地显示公用对话框的各种类型。有Cancel按扭的内部对话框当该按扭被选中时不返回CANCEL(2)值。而是调用当前定义的退出处理程序。注意:作为缺省,InstallShield  Professional 6以Windows 2000 风格显示最终用户对话框,该风

FANGAO的专栏 2032

从“氛围编程“到“智能体工程“:AI编程范式的认知跃迁与工程实践

摘要: 2026年,ClaudeCode负责人鲍里斯·切尔尼提出用“智能体工程”(Agent Engineering)替代流行的“氛围编程”(Vibe Coding),认为后者过于主观,无法体现AI编程的系统化与工程化本质。智能体工程强调记忆系统、工具编排、任务分解、可观测性等核心技术,将AI编程从“玄学辅助”升级为可度量、可规模化的工程学科。本文通过对比术语差异、构建知识体系,并结合代码实例(如带记忆系统的代码生成Agent和可观测性系统),展示了智能体工程的实际应用。行业案例(如ClaudeCode的并

yyq916的博客 1061

西门子WinCC VBS脚本实战:5分钟搞定变量记录导出到Excel(附完整代码)

本文提供了一套高效的西门子WinCC VBS脚本方案,帮助工程师在5分钟内将变量记录数据导出至Excel。方案详细解析了时区转换、数据库连接、SQL查询优化等核心难点,并附带了完整、可直接使用的VBS代码,解决了工业自动化项目中数据导出的实际痛点。

moss5的博客 609

一个完整的Installshield安装程序实例

Installshield可以说是最好的做安装程序的商业软件之一,不过因为功能的太过于强大,以至于上手和精通都不是容易的事情,之前都是用Installshield的Project Assistant对付过去的,这次做这个安装程序,为了实现一些功能,必须写代码,国内外现成的资料很少,而且很多都语焉不详,自己反复啃了多次,对比Installshiel自带的help,才明白资料所表达的意思。这个安装程序

Angelo Lee's Blog 5764

西门子S7-200 SMART控制步进电机(二)

目录 一、开环运动控制方法 二、运动轴概述 三、配置运动控制向导 一、开环运动控制方法 S7-200 SMART CPU提供三种开环运动控制的方法: 1、脉冲宽度调制(PWM):内置于CPU中,用于速度、位置或占空比的控制 2、脉冲串输出(PTO):内置于CPU中,用于指定长度脉冲或指定距离的控制 3、运动轴:内置于CPU总,用于速度和位置的控制。本文所讲的就是通过运动轴实现步进电机的运动控制。 SR20和ST20 CP...

qq_43134642的博客 2万+

InstallShield生成的安装包 选择安装目录时失去焦点的问题

      用InstallShield的制作的安装包,在选择安装目录时,点击“浏览”或“选择”等按钮,弹出选择目录的对话框之后,经常会遇到安装程序失去焦点的问题。      具体的说,就是在可以手动输入路径的位置,有时候是选择目录对话框刚弹出来就失去焦点;有时候虽然没有,但只要光标切到其他程序再切回安装界面,也一定会出现失去焦点的问题。     就是刚过了几秒钟,可能还没来及把想要的

icycode的专栏 3094

AI 大模型应用数据中心的数据清洗工具

1. 背景介绍 在人工智能大模型应用的浪潮中,数据清洗作为数据预处理的重要环节,对于提升模型性能和可靠性具有至关重要的作用。数据中心作为人工智能模型的运行环境,面临着海量数据流和多样化的数据类型,如何高效、准确地进行数据清洗,成为应用大模型的关键问题之一。本文将详细介绍AI大模型应用数据中心的数据清洗工具,包括核心概念、算法原理、具体操作步骤、应用场

SuperAGI2025 1804

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

InstallShield LE 打包MySQL

之前软件使用的数据库是微软的sql server,InstallShield Limited 2013中是可以直接打包的,现在需要改成mysqlserver,需要自己写批处理把mysql打包进去。

qq_27157051的博客 2148

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

使用InstallShield2019 进行Net项目打包

1. 打开InstallShield 2019 软件,并新建项目,选择Basic MSI,添加项目名字和保存的路径。 2.添加项目信息,产品名字,版本,安装目标目录。 3.添加新的Feature,命名软件名字(Feature的真正意思是功能组件,方面安装者选择不同的功能进行安装,也可以当做一个软件)。 Components: 代表安装目录下的子目录。(大型软件文件资源,dll 可能会...

哲学天空的博客 8169

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

InstallShield 2018同时打包32位和64位

InstallShield可谓打包神器,之前用的是2013版的,作为VS的一个项目模板使用,这次尝试了下2018版的,显然,功能更强大了。 由于现在的电脑系统都分64位和32位,这就要求打包的时候可能需要针对两种不同的系统打包,过去,我们不得不通过InstallShield新建两个项目各自打包,现在,我们可以利用InstallShield 2018的Features(其实我也不知道Features...

leebin_20的博客 3987

InstallShield打包设置相对路径

InstallShield打包设置相对路径 在使用Installshield 打包安装文件时,添加打包文件时默认使用绝对路径,但是工程文件转移时(复制到其它位置时)编译时就会找不到安装文件,这样很不方便。能不能设置打包文件的相对路径呢?答案是肯定的。 设置相对路径方法: 1. 打开工程文件中配置文件(e.g Setup.isl). 2. 找到结点<table name="...

weixin_30889885的博客 918

InstallShield常用问题

1、 问题描述:采用何种安装模式? 实现方法:如果对用户界面等自定义要求不高的话,建议用Basic Msi Project,否则用InstallScript MSI Project。 2、 问题描述:安装后快捷方式为乱码。 实现方法:将简体中文设为默认安装语言后删除English前的勾。 操作步骤:在Installation Designer页面中Installation Information-...

Bobit - 优快云博客 6874

使用InstallShield2015 Limited Edition的免费安装跟进行VS应用程序打包

  很好的链接:原 VS2017自带打包软件  解决应用程序打开文件位置无法定位到安装目录的问题。 InstallShield的离线安装与激活使用 项目打包的基本配置: 一、安装InstallShield Limited Edition for Visual Studio,一般到要到官网注册一个账号。然后其会发邮件给你,其中包括软件的安装包跟序列码。这两个是一一对应的,如果是使用了别人的安...

yangdeshun888的博客 1万+

installshield打包

进入Project Wizard后如图1:在第一栏中写入你的程序的名字,第二栏中写入公司的名字,在第三栏中选择开发程序使用的根据,第四栏中选择程序的种类,最后一栏中填入程序的可执行文件的完整路径和名字。Scripts 的编程遵循结构化编程的思想,提供了大量类似Windows API的函数库供调用,每个宏定义都有详细的说明,每个函数除了详细地说明,解释每个变量的意义外,还都附有相应的例子,参考这些说明和例子,可以让新手在非常短的时间内上路。你可以做的是在此加上你的函数说明、全局变量的说明。

qq_25699299的博客 1017

Installshield软件项目打包学习

这个类型当中的事件一般来说不需要改动。在这里可以做一些软件安装的必需工作,比如你的软件需要mysql数据库支持,但安装的电脑上有没有,此时我们把mysql数据库的安装包和执行安装的脚本打包进项目,让脚本替我们在这个时候去复制移动,去执行就可以了。在第一次安装时,在复制安装数据之后触发的事件,例如有一个系统需要将安装路径设置FTP虚拟目录,如果在安装数据之前就设置的话,该路径不存在,无法设置成功,因此需要在这个事件中设置。就是在第一次安装时,在复制安装数据之前触发的事件,更改这个事件的脚本可自定义安装步骤。

zypf_lover的博客 1045

VC打包 InstallShield 12 制作安装包

目  录 一、       InstallShield安装 二、       InstallShield 破解 三、       制作安装包 (一) 打开工程 (二) 工程助手页面 1、Application Information:程序信息 2、Installation Architecture: 安装包结构 3、Application Files;指定安装的文件默认目标路径

htjx99的专栏 1034

InstallShield 2013 Limited Edition for Visual Studio

新建打包项目后,解决方案资源管理器中的结构如下: Project Assistant界面如下: 在Project Assistant中按照步骤创建打包项目: 1、Application Information 中填写公司名称、产品名称、版本号、网址的信息。   Application Information 左侧窗口点击 General Information 中设置其...

doris_d的专栏 5702
下一篇: InstallShield生成的安装包 选择安装目录时失去焦点的问题
icycode
博客等级 码龄17年 38粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值