我想用Inno Setup创建一个安装程序,这是我第一次使用这个工具。< br >我尝试做的是用一个更详细的自制安装程序(指Setup.exe里面的Setup.exe)包装一个现有软件的现有安装程序。
到目前为止的研究后,对我有用的是要求安装程序(Inno Setup *.exe)运行随附的安装程序(实际软件设置)。
为什么我需要另一个安装程序?因为我想给它一些额外的功能。
特别是:我想在安装结束时添加一个注册表键,作为最后一步,适合相关的位系统(32/64位)。这是我请求专家帮助的地方。(主要关注点)
我的问题具体如下:
因此,理论上的解决方案大致如下…
procedure MyAfterInstall();
function IsWin64: Boolean;
if 64-bit Reg-Add HKLM\SOFTWARE\Wow6432Node\A
else Reg-Add HKLM\SOFTWARE\B
很抱歉没有给你更多。我通常不编码。
如果相关,这就是我到目前为止在代码部分中的内容:
[Code]
procedure DeinitializeSetup();
begin
RegWriteStringValue(
HKEY_LOCAL_MACHINE, 'SOFTWARE\Wow6432Node\A', 'ConnectionString ', 'Data Source=Test;');
end;
我之所以使用DeinitializeSetup
,是因为这是迄今为止对我有效的一件事,但是我知道即使用户在安装任何东西之前退出安装程序,也会调用此函数,这不是很好。我在安装后运行这个,因为软件安装本身创建了我想要添加密钥的路径,在软件安装失败时使用密钥是没有意义的……也许还有更好的方法
对很多话表示歉意,并提前感谢您的帮助。
若要在安装完成后执行代码,请使用 CurStepChanged
事件函数并检查 CurStep = ssPostInstall
。
由于Inno Setup是32位应用程序,默认情况下,它会自动重定向到64位系统上的Wow6432Node
。不需要明确地这样做。因此,如果Wow6432Node
是32位和64位路径之间的唯一区别,则不需要执行任何特殊操作:
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
Log('Installation finished, writing connection string');
RegWriteStringValue(
HKEY_LOCAL_MACHINE, 'SOFTWARE\A', 'ConnectionString', 'Data Source=Test;');
end;
end;
当然,除非您使用64位安装模式。
另请参阅:在 Inno 安装程序中写入 32/64 位特定注册表项。
如果密钥路径确实不同,请使用IsWin64
函数:
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
if IsWin64 then
begin
Log('Installation finished, writing 64-bit connection string');
RegWriteStringValue(
HKEY_LOCAL_MACHINE, 'SOFTWARE\A', 'ConnectionString', 'Data Source=Test;');
end
else
begin
Log('Installation finished, writing 32-bit connection string');
RegWriteStringValue(
HKEY_LOCAL_MACHINE, 'SOFTWARE\B', 'ConnectionString', 'Data Source=Test;');
end;
end;
end;
如果操作系统是64位,我想安装一个32位的DLL到文件夹和64位的DLL到文件夹并分别注册它们。如果是32位操作系统,我只想将文件复制到正常程序文件夹并注册。 如何在Inno安装程序中执行此操作?64位DLL也会被64位程序注册吗? 这是我到目前为止的代码。它在 32 位操作系统上工作正常,但在 64 位操作系统上,它会转储 中的两组文件。 我已经看过示例,但它告诉如何进行32位或64位安装,而不
本文向大家介绍安装SQL server 2005 出现警告 32位ASP.NET已经注册,需要注册64位的解决方法,包括了安装SQL server 2005 出现警告 32位ASP.NET已经注册,需要注册64位的解决方法的使用技巧和注意事项,需要的朋友参考一下 可以运行以下两条命令: 1.将64位.net注册到iis上。 cscript C:\inetpub\adminscripts\adsut
问题内容: 是否可以在Windows 7上同时安装32位和64位Java? 我有一些应用程序可以在64位下运行,但是有些应用程序只能在32位下运行。 问题答案: 是的,绝对没有问题。您甚至可以同时在同一台计算机上安装32位和64位Java的多个版本。 实际上,我本人也有这样的设置。
方式1:在脚本编辑器里一句一句地写,需要熟悉注册表相关知识和NSIS脚本语法。 如 ;关闭XP文件保护 WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" "SFCDisable" 0xffffff9d ;开放匿名方式获取本机信息 WriteRegDWORD HKLM "SYSTEM\Current
问题内容: 我有Windows Vista 64。 我有一些项目需要Python 2.7.3 64位,而其他项目则需要Python 2.7.3 32位(因为某些扩展不能在64位上工作)。 如何防止Python 2.7.3 MSI安装程序(32或64 Bot)删除其他版本。 并排使用Python 2.7.2为我工作没有问题。 问题答案: 在Windows 7 64位上,这似乎对我有用。选择一个版本作
本文向大家介绍32位和64位皆适用的MyEclipse安装教程,包括了32位和64位皆适用的MyEclipse安装教程的使用技巧和注意事项,需要的朋友参考一下 MyEclipse *的下载,找到MyEclipse的各种历史版本下载页面:http://www.myeclipsecn.com/ 简单说下,MyEclipse自己会带一个JDK,他是eclipse加插件的增强版,就不用安装eclipse了