为什么会在某些系统中显示错误消息“安装程序文件已被破坏”?
* 安装程序给出一条消息“不能注册 DLL/OCX: DllRegisterServer 输出未找到”
* 程序卸载后,安装程序创建的目录仍存在功能
* 翻译 Inno Setup 文字
* 它支持 MBCS (多字节字符集) 吗?
* 将来会支持 Windows Installer 吗?
* 怎样更改 Setup.exe 的图标?
* 可以用 Inno Setup 创建一个带条件的安装程序吗 - 例如,仅在某个注册表键或文件存在时进行?
* “网络安装”功能在哪里?
* 可以不使用 /SILENT 或 /VERYSILENT 命令行参数创建一个后台安装程序吗?
* 安装程序可以使用读取注册表值作为默认的安装目录吗?
问题
* 编译器说“参数引号错配或放置不当"
* 双击安装程序创建的快捷方式时不能找到我的应用程序一些文件在资源管理器中双击 应用程序的 EXE 文件时能正常工作
* 在没有卸载老版本的情况下我安装新版本的应用程序,在控制面板的添加/删除程序中出现两个条目
* 我在 [Run] 段运行一个批处理文件,但完成执行后窗口仍留在屏幕中,我想让它在“退出时关闭”
* 我已经在脚本中更改了 DefaultDirName,但当我运行安装程序时还是默认为以前的目录
* 我有两个相同名字的 [Icons] 条目,但只安装了一个
* 安装不等待程序 [Run] 段条目完成执行
* 选择安装程序语言对话框中丢失了某些语言,或不能全部显示
安装任务
* 创建 Internet (URL) 快捷方式
* 在快速运行栏创建快捷方式
* 在快捷方式中设置“起始位置”对象
* 创建文件关联
* 设置环境变量
* 在 MS-DOS 程序快捷方式设置“退出时关闭”框
* 替换文件之前制作备份
* 根据 Windows 版本安装不同的文件
* 设置文件、目录或注册表键许可
* 我的安装程序需要做一些 Inno Setup 目前还没有的功能
怎样安装...?
* OCX 文件
* Visual Basic 系统文件
* Visual C 系统文件 (例如 MFC)
* COMCTL32.DLL
* BDE (Borland 数据库引擎)
* MDAC,ADO,Jet 等
兼容性
* 操作系统兼容性
* Windows NT/2000/XP 管理员权限
杂项
* 制作的安装程序有没有多大文件限制?
* 单击用户在安装期间单击“取消”后发生什么?
功能
翻译 Inno Setup 文字
翻译 Inno Setup 文字为其它语言不需要修改源代码只要简单地制作一个 Default.isl 文件 (包含在 Inno Setup) 的副本并编辑其中的文字就行了(不要直接编辑 Default.isl 文件,否则你的更改将在安装新版本的 Inno Setup 后丢失) 在 Inno Setup 帮助文件中查看“[Messages] 段”获取一些重要提示
一旦你完成新的 .isl 文件编辑,在 [Languages] 段创建一个条目告诉编辑器你要使用它:
[Languages]
Name: mytrans; MessagesFile: "compiler:MyTranslation.isl"
如果你使用 4.0 之前的 Inno Setup 版本,用下列替换:
[Setup]
MessagesFile=compiler:MyTranslation.isl
在下列网页中有许多其它人提供的翻译可用: Inno Setup 第三方文件页,还有一个能编辑 .isl 文件的程序
它支持 MBCS (多字节字符集) 吗?
Inno Setup 2.0.6 添加了完善的 MBCS 支持在所有文件名和常量解析中使用了头字节检查,因此应该不会出现使用反斜框字符 (“/”) 或括号 (“{”) 错误
2.0.6 及以前版本不包含任何 MBCS 的特殊支持
将来会支持 Windows Installer 吗?
现在我还没有打算编写 Windows Installer 版本的 Inno Setup“Supporting” Windows Installer 好象还没有完善一点的编写器 - 有些东西我还没有兴趣去做
怎样更改 Setup.exe 的图标?
安装程序的图标可以通过设置 [Setup] 段的 SetupIconFile 进行更改要设置卸载程序的图标,设置 UninstallIconFile
可以用 Inno Setup 创建一个带条件的安装程序吗 - 例如,仅在某个注册表键或文件存在时进行?
Inno Setup 4 添加了支持这个的新 Pascal 脚本功能
注意: 用早期的 Inno Setup 版本它已经提供根据 Windows 版本安装不同的文件
“网络安装”功能在哪里?
没有,这次写入的版本我还没有添加这样的功能
可以不使用 /SILENT 或 /VERYSILENT 命令行参数创建一个后台安装程序吗?
没有,也不打算添加这样的功能 (它会被滥用)如果你的目的是保护用户交互让它最小化,使用禁用 [Setup] 段指示
安装程序可以使用读取注册表值作为默认的安装目录吗?
是的在 DefaultDirName 中使用一个 {reg:...} 常量例如:
[Setup]
DefaultDirName={reg:HKLM/Software/My Program,Path|{pf}/My Program}
查阅 Inno Setup 帮助文件中的“常量”主题获取更多 {reg:...} 常量的信息
问题
编译器说“参数引号错配或放置不当"
如果你尝试在一个参数数据中嵌入一个引号 (") 字符,但不完整 (只有一个) 时显示这个消息在 Inno Setup 帮助主题中查阅“段中参数”获取更多信息
双击安装程序创建的快捷方式时不能找到我的应用程序一些文件在资源管理器中双击 应用程序的 EXE 文件时能正常工作
你的应用程序很可能未指定尝试打开的文件路径名,因此它在当前目录查找Inno Setup 默认在它创建的快捷方式中不设置“起始位置”对象;这会导致 Windows 拾取它自已的目录,通常不是包含你应用程序的目录
实际上所有的事例中,这是一些应该创建的应用程序同层的东西通常设计的 GUI 应用程序应该不会期待从特殊目录中启动;它们应该总是指定打开文件的完整路径名在 Delphi 或 C Builder,例如,它可以通过下列调用获取包含应用程序 EXE 的完整路径名: ExtractFilePath(ParamStr(0))要获取在应用程序目录中的名为“File.txt”的完整路径,使用: ExtractFilePath(ParamStr(0)) 'File.txt'
如果因某些原因你不能在应用程序层中修正这个问题,你可以通过在 [Icons] 段添加“WorkingDir: {app}”告诉 Inno Setup 设置“起始位置”对象
为什么会在某些系统中显示错误消息“安装程序文件已被破坏”?
这个错误消息在隶属安装程序的一个文件 (例如 setup.exe,setup.1) 大小错误,或部分文件 CRC 校验失败时显示它不会没有任何理由显示
如果你的安装程序通过 internet 分布,且在获取时有许多错误报告,它可能因为你的网络服务器故障传送部分文件错误
如果你的安装程序通过 CD-ROM 或软盘分布,CD-ROM 或软盘可能已坏,或设备有问题
在没有卸载老版本的情况下我安装新版本的应用程序,在控制面板的添加/删除程序中出现两个条目
这在你更改了 AppId 版本时会发生,或如果未指定 AppId 和 AppName.如果你这样做,安装程序不知道同一应用程序的两个版本,因此将在添加/删除程序中创建新条目同时将创建一个新的卸载记录文件 (unins???.dat)最好的方法是更改 AppId 和 AppName
如果你在新版本中必须改变 AppName,设置 AppId 先前版本的 AppId 或 AppName 值
安装程序给出一条消息“不能注册 DLL/OCX: DllRegisterServer 输出未找到”
这个消息通常意味着你在文件中指定了“regserver”标记,但它不能注册从 [Files] 条目中删除“regserver”标记就不会出错这个消息
程序卸载后,安装程序创建的目录仍存在
这个有几个说明为什么目录没有被删除:
* 目录在安装前已经存在按默认,卸载程序为了安全起见不删除安装程序没有创建的目录
* 它含有文件或子目录如果你需要卸载程序删除其它的文件/目录,使用 [UninstallDelete]
* 在当前目录中还有一个进程正在运行
注意: 在 Inno Setup 2.0.1 以有版本中,目录必须指定在 [Dirs] 或 [UninstallDelete] 段才能被卸载程序删除在新的 Inno Setup 版本中,用 [Files] 段条目创建的目录将被卸载程序自动删除 (如果它不是用先前的安装程序创建)
我在 [Run] 段运行一个批处理文件,但完成执行后窗口仍留在屏幕中,我想让它在“退出时关闭”"
来自 Tim Rude:
简单地让批处理文件在退出后自动关闭是,使用 CLS 命令在结束时清除屏幕
--- 批处理文件 1 ---
@echo off
echo Hello World
echo 这个批处理文件在退出时不关闭
--- 批处理文件 2 ---
@echo off
echo Hello World
echo 这个批处理文件在退出时关闭
cls
我已经在脚本中更改了 DefaultDirName,但当我运行安装程序时还是默认为以前的目录
在启动安装程序时在注册表中发现如果以前已经安装了相同的应用程序,它将使用以前安装的目录作为默认目录在安装向导中提供给用户如果卸载应用程序再运行安装程序,它将使用新的 DefaultDirName 设置如果你想禁用这个功能,设置 UsePreviousAppDir 为“no”
我有两个相同名字的 [Icons] 条目,但只安装了一个
两个文件不能用相同的名字,快捷方式其实也是文件,因此两个快捷方式不能用相同的名字
安装不等待程序 [Run] 段条目完成执行
首先,请确认你在 [Run] 条目中没有使用“nowait”或“waituntilidle”标记这些标记防止安装程序在进程完成终止前等待
如果你没有使用这些标记,但它还是好象不等待程序完成,那么很可能你正在运行的 EXE 分出其它进程肯不能用它自身直接终止,导致安装程序认为该程序已经完成现在已知在老的 InstallShield-based 安装程序会偶尔发生 (要围绕它工作,尝试使用 /SMS 切换)
一个简单的检查方法,如果程序从命令行运行“START /WAIT ProgramName.exe”,在程序退出前返回到命令提示时查看
选择安装程序语言对话框中丢失了某些语言,或不能全部显示
从 Inno Setup 4.2.2 开始,, languages specified in the [Languages] section that cannot be displayed under the 活动 Windows ANSI 代码页下不能显示的 [Languages] 段中指定的语言,不再在选择安装语言对话框中列出例如,俄语只能在活动代码页是 1251 的情况下显示;如果用户不是运行在代码页 1251,那么他们不能在选项中看到俄语选项
在 Windows XP 中,活动代码页可以在控制面板的区域和语言选项中进行更改,并在高级标签中设置非 Unicode 程序语言,然后点击设置默认...
如果你能保存你正在正确的代码页中运行,并且语言仍不能列出,那么很可能是 .isl 语言文件中的 LanguageID 设置错误
如果你想让所有的语言强制可见,不考虑它们是否可以在使用的活动代码页下正确显示,请在脚本中添加以下内容:
[LangOptions]
LanguageCodePage=0
安装任务
创建 Internet (URL) 快捷方式
先创建一个文件名,例如“website.url” ,其后在内部写入这些行:
[InternetShortcut]
URL=http://web.site.address/
然后添加下列行到你的脚本:
[Files]
Source: "website.url"; DestDir: "{app}"
[Icons]
Name: "{group}/访问我的网站"; Filename: "{app}/website.url"
在快速运行栏创建快捷方式
升级到至少 Inno Setup 1.3.11 版,然后使用:
[Icons]
Name: "{userappdata}/Microsoft/Internet Explorer/Quick Launch/My Program"; Filename: "{app}/MyProg.exe"
在快捷方式中设置“起始位置”对象
在 [Icons] 段条目中使用一个 WorkingDir 参数
创建文件关联
先设置 [Setup] 段指示“ChangesAssociations”为“yes”然后根据下面显示创建 [Registry] 条目
[Registry]
Root: HKCR; Subkey: ".myp"; ValueType: string; ValueName: ""; ValueData: "MyProgramFile"; Flags: uninsdeletevalue
“.myp”是我们要关联的扩展名“MyProgramFile”是贮存在注册表中的文件类型内部名字请确认你使用了一个唯一的名字,这样你不会一不小心覆盖其它应用程序的注册表键
Root: HKCR; Subkey: "MyProgramFile"; ValueType: string; ValueName: ""; ValueData: "My Program File"; Flags: uninsdeletekey
“My Program File”是显示在资源管理器中的文件类型的名字
Root: HKCR; Subkey: "MyProgramFile/DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}/MYPROG.EXE,0"
“DefaultIcon”是指定与文件类型关联的文件名包含的图标的注册表键“,0”告诉资源管理器使用 MYPROG.EXE 中的第一个图标索引(“,1”表示第二个图标索引)
Root: HKCR; Subkey: "MyProgramFile/shell/open/command"; ValueType: string; ValueName: ""; ValueData: """{app}/MYPROG.EXE"" ""%1"""
“shell/open/command”是指定在资源管理器双击该文件类型时执行的程序的注册表键命令行中的引号是让它可以正确处理长文件名
设置环境变量
在 Windows NT/2000/XP,环境变量是用字符串值贮存的注册表中,因此可以使用 [Registry] 段进行操作系统宽度环境变量位于:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Contro l/Session Manager/Environment
用户指定环境变量位于:
HKEY_CURRENT_USER/Environment
在 Windows 95/98/Me,你需要修改 AUTOEXEC.BAT 设置环境变量Inno Setup 不包括进行设置的内置功能,可以是你可写一个小程序通过在 [Run] 段运行它进行设置(更多信息)
在 MS-DOS 程序快捷方式设置“退出时关闭”框
Inno Setup 1.3.15 及更高版本支持在 [Icons] 段的“closeonexit”和“dontcloseonexit”标记
替换文件之前制作备份
Inno Setup 目前还没有执行备份的特殊功能,但你可以通过在 [Files] 段条目中象下面这样在替换前先制作一个文件副本:
Source: "{app}/MyProg.exe"; DestDir: "{app}/backup"; Flags: external skipifsourcedoesntexist uninsneveruninstall
根据 Windows 版本安装不同的文件
这可以在条目中的 MinVersion 和/或 OnlyBelowVersion 参数来完成在帮助文档中查看公共参数主题获取详细资料
这里有一个简单地的例子说明怎样安装一个文件到 NT 平台 (Windows NT/2000/XP) 以及其它文件安装到非 NT 平台 (Windows 95/98/Me):
[Files]
Source: "{app}/WinNT2000XP.exe"; DestDir: "{app}"; MinVersion: 0, 1
Source: "{app}/Win9598Me.exe"; DestDir: "{app}"; MinVersion: 1, 0
“0”表示从不安装;“1”表示在任何版本安装 (例如 version 1.0 或更高)
注意: 上述方法不只限制为 [Files] 段;MinVersion 和 OnlyBelowVersion 可以在大多数段中使用
设置文件、目录或注册表键许可
从 Inno Setup 4.1.0 开始,[Dirs],[Files] 和 [Registry] 段支持设置目录、文件和注册表键许可的许可参数
如果你需要更高高级需求,查阅 SetACL
我的安装程序需要做一些 Inno Setup 目前还没有的功能
查阅 How-To 文档执行自定义功能
怎样安装...?
OCX 文件
推荐你用下列方法安装 OCX 文件
[Files]
Source: "ComCtl32.ocx"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: restartreplace sharedfile regserver
Visual Basic 系统文件
查阅这个 How-To 文档
Visual C 系统文件 (例如 MFC)
查阅这个 How-To 文档
COMCTL32.DLL
如果你的安装程序需要一个更新版本的 COMCTL32.DLL,你可以指引用户从 Microsoft 下载 COMCTL32 更新版本,或从你的安装程序通过使用下列语句调用 COMCTL32 更新:
[Files]
Source: "50comupd.exe"; DestDir: "{tmp}"
[Code]
function ShouldInstallComCtlUpdate: Boolean;
var
MS, LS: Cardinal;
begin
// Only install if the existing comctl32.dll is < 5.80
Result := False;
if GetVersionNumbers(ExpandConstant('{sys}/comctl32.d ll'), MS, LS) then
if MS < $00050050 then
Result := True;
end;
[Run]
Filename: "{tmp}/50comupd.exe"; Parameters: "/r:n /q:1"; Check: ShouldInstallComCtlUpdate
不能尝试直接使用 [Files] 段安装 COMCTL32.DLL;Microsoft 不允许这样做,而且这这样做很危险
BDE (Borland 数据库引擎)
查阅 How-To 文档安装 BDE 获取使用 Inno Setup 配置 32 位的详细资料
MDAC,ADO,Jet 等
查阅这个 How-To 文档
兼容性
操作系统兼容性
当前支持的平台包括 Windows 95,98,2000,XP,Me 和 NT 4.0
我当前是在 Windows 2000 平台上使用和开发,因此对 Windows 2000 的兼容性是可靠的
当引入新的主功能时,我通常在所有支持的 Windows 版本中进行测试
16 位版本的 Inno Setup 已在版本 1.3 中放弃Windows NT 3.51 支持在版本 3.0 中放弃
Windows NT/2000/XP 管理员权限
典型的 Inno Setup 安装程序在 Windows NT/2000/XP 中运行不需要管理员或“超级用户”权限除非下面注明的部分
用 Windows NT/2000/XP 中需要管理员权限:
* 在脚本中的 [Setup] 段使用“AdminPrivilegesRequired=yes”这会使安装程序在缺少管理员权限的用户安装时出现错误消息并中断(默认设置中 AdminPrivilegesRequired 指示是“no”)
* 在 [Files] 段使用“restartreplace”这个功能会使 Inno Setup 调用 MoveFileEx 功能,尝试写入到“HKEY_LOCAL_MACHINE/ SYSTEM/ CurrentControlSet/ Control/ Session Manager” 写入这些注册表必须要有管理员权限
* 用 [Registry] 段在 HKEY_USERS/.DEFAULT 下写入任何键写入这些注册表必须要有管理员权限
在 Windows 2000/XP 中需要管理员或“超级用户”权限之一:
* 在 [Files] 段使用“regserver”标记在大多数场合中注册一个 DLL 写入到 HKEY_CLASSES_ROOT,普通用户是没有权限的
* 在 [Files] 段使用“sharedfile”标记这个标记会使 Inno Setup 创建/更新在“HKEY_LOCAL_MACHINE/ SOFTWARE/ Microsoft/ Windows/ CurrentVersion/ SharedDLLs”中的一个值普通用户不允许写入这些键值
* 在 [Files] 段使用 FontInstall 参数
* 在 [Registry] 段在 HKEY_LOCAL_MACHINE 或 HKEY_CLASSES_ROOT 下写入任何键普通用户不允许写入这些键值
Inno Setup 自身不需要写入到 WINNT 目录,或上述提及的任何注册表键
当安装程序被一个没有管理员权限的用户安装有什么不同呢?
* 添加/删除程序控制面板条目注册表键创建在 HKEY_CURRENT_USER 下而不是 HKEY_LOCAL_MACHINE 中因此,只有安装的用户可以在添加/删除程序条目看到它
* “{group}”常量总是指向当前用户配置文件,同时指向所有用户配置文件
* 所有“{common...}”常量等同于“{user...}”常量
* 该程序可以被其它用户卸载(当管理员安装程序,只有管理员允许卸载)
杂项
制作的安装程序有没有多大文件限制?
http://www.zbedu.net/yuwen/user1/376/archives/2006 /5292.html
Inno Setup 没有在单个安装程序中限制多大文件、快捷方式、注册表条目等但是,安装程序脚本中的每个条目都需要一定数量的内存例如,每个 [Files] 条目大概需要 120 字节的内存
在 Inno Setup 3.x 及更早版本中,安装程序和单个文件不能超过 2 GB,因为它不使用 64 位算法这已经在 Inno Setup 4 中添加
单击用户在安装期间单击“取消”后发生什么?
当单击“取消”时,安装程序将开始用非常类似卸载程序的模式回复先前制作的更改因此,不会剩下部分已安装的程序
[www.gdjyzsw.com 广东学习网]

information相关推荐

  1. U盘中毒,无法删除System Volume Information文件夹

    情景:U盘中毒,U盘内的文件夹名称变成.exe后缀,且多出一个名为System Volume Information的文件夹,对U盘进行格式化后,所有文件消失,当拔出U盘,再次插入电脑时,发现Syst ...

  2. git pull出现There is no tracking information for the current branch

    使用git pull 或者 git push 的时候报错 gitThere is no tracking information for the current branch. Please spec ...

  3. 信息级联/信息瀑布(Information Cascade)

    原文链接: 关于信息级联的看法_计算社会学_新浪博客 http://blog.sina.com.cn/s/blog_12bcdd96c0102xvcs.html 关于信息级联(information ...

  4. U盘中毒了?教你如何删除System Volume Information这个顽固文件夹

    不得不说cmd命令很好用呢.最近我的U盘中毒了,格式化都删除不了System Volume Information这个顽固的文件夹,真心伤不起哇!还好现在解决了问题.看来以后得好好对待U盘,不能乱用了 ...

  5. Memory Information on Windows Mobile(续)

    在<Memory Information on Windows Mobile>一文中,讲述了Windows Mobile 6 Professional SDK中的一个关于在今日插件中显示内 ...

  6. It appears as though you do not have permission to view information ...

    nagios里出现监控页面出现 It appears as though you do not have permission to view information for any of the h ...

  7. R计算贝叶斯信息指标(Bayesian Information Criterion,BIC)实战

    R计算贝叶斯信息指标(Bayesian Information Criterion,BIC)实战 目录 R计算贝叶斯信息指标(Bayesian Information Criterion,BIC)实战

  8. 机器学习特征筛选:互信息法(mutual information)

    机器学习特征筛选:互信息法(mutual information) 互信息法多为分类问题的分类变量的筛选方法 经典的互信息也是评价定性自变量对定性因变量的相关性的,为了处理定量数据,最大信息系数法被提 ...

  9. R语言基于信息价值IV(Information Value)和证据权重WOE(Weights of Evidence)进行特征筛选(feature selection)

    R语言基于信息价值IV(Information Value)和证据权重WOE(Weights of Evidence)进行特征筛选(feature selection) 对一个学习任务来说,给定属性集 ...

  10. R计算赤信息指标(Akaike information criterion,AIC)

    R计算赤信息指标(Akaike information criterion,AIC) 目录 R计算赤信息指标(Akaike information criterion,AIC) 计算AIC AIC结果 ...

最新文章

  1. Oracle集合操作函数:Union、Union All、Intersect、Minus
  2. java io使用哪些设计模式_JAVA IO中的设计模式
  3. 智联招聘爬虫源码分析(一)
  4. Linux 解压后的启动流程分析
  5. python人脸识别训练模型_开源 | 基于Python的人脸识别:识别准确率高达99.38%!
  6. 【Flink】Flink 控制台能消费 但是 Flink 任务不能消费 内置topic 导致问题
  7. 从零开始学前端:浮动 --- 今天你学习了吗?(CSS:Day15)
  8. 【mysql】期末数据库复习指南(《数据库系统概率》知识点总结,数据库系统原理,数据库设计课程复习)
  9. android模拟器 opengl,android模拟器用到android.opengl.glsurfaceview报错怎么办
  10. discuz 任务扩展
  11. 《推荐系统实践》算法纯享(附代码链接)(六)—— 借助社交网络推荐篇
  12. 软考论文-论软件系统架构评估
  13. PhpSpreadsheet 设置常用格式
  14. android View的生命周期
  15. html微信字体大小布局,微信小程序界面设计入门课程样式wxss中使用css课程字体fontsize字体大小...
  16. 《富兰克林自传》读后感:从这个接地气的伟人身上我们可以学到什么?
  17. flea-db使用之JPA封装介绍
  18. DIY兼容机装苹果系统
  19. 中国互联网公司员工平均年龄出炉:平均年龄 27 到 33 岁
  20. html5选题背景,选题背景、目的及研究意义_中式餐饮空间设计选题背景

热门文章

  1. 手机显示android怎么办,安卓手机卡顿怎么办?你必须要知道的办法!
  2. java redis缓存清除_JAVA中redis增删查以及清理缓存
  3. 为什么全国计算机二级,为什么2019年3月全国计算机二级考试成绩没有通过?
  4. <android>水滴效果的进度条 DripProgressView(二阶贝塞尔曲线自定义view)
  5. oracle sql 拆分字符串,Oracle数据库字符串分割的处理实现
  6. Ubuntu安装教程图示
  7. x86汇编语言基础(ATT语法)
  8. Istio 实践手册 | 服务网格介绍
  9. Java包装类以及作用
  10. servlet中@webServlet注解出错导致404