我使用此代码来了解密钥是否存在:
if RegKeyExists(HKEY_LOCAL_MACHINE, 'Software\Autodesk') then
begin
MsgBox('Key exists!!', mbInformation, MB_OK);
end;
Run Code Online (Sandbox Code Playgroud)
对于这个例子,它有效,我有消息框,但有了它,它没有:
if RegKeyExists(HKEY_LOCAL_MACHINE, 'Software\Autodesk\Maya') then
begin
MsgBox('Key exists!!', mbInformation, MB_OK);
end;
Run Code Online (Sandbox Code Playgroud)
但是"Maya"键存在于我的电脑上.有谁能够帮我 ?
编辑:
实际上,似乎inno-setup不能访问正确的键...例如,使用此代码我列出了所有子键Maya,但是(!)结果是所有子键HKEY_LOCAL_MACHINE\SOFTWARE...
if RegGetSubkeyNames(HKEY_LOCAL_MACHINE, 'SOFTWARE', Names) then
begin
S := '';
for I := 0 to GetArrayLength(Names)-1 do
S := S + Names[I] + #13#10;
MsgBox('List of subkeys:'#13#10#13#10 + S, mbInformation, MB_OK);
end;
Run Code Online (Sandbox Code Playgroud)
为什么这个HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node关键?
为了节省带宽/空间以及防止意外干扰,数据库产品的安装文件(称之为Ajax)已被压缩(调用该文件"AJAX_Install_Files.ZIP).我想让Inno-Setup"安装" (即,复制)AJAX_Install_Files.ZIP文件到目标,然后将文件解压缩到.ZIP文件所在的同一文件夹中.后续程序将由Inno安装程序启动以实际运行产品安装"Ajax ".
我查看了Inno Setup网站上的文档,FAQ和KB,除了编写Pascal脚本(代码)之外,这似乎不可能 - 这是正确的,还是有任何替代解决方案?
如何使用序列号的编辑框在Inno Setup中创建CustomPage?例如6x5chars还是7x5chars?
在下一个按钮可用之前,脚本应检查是否所有框都已填满.
如果可以实现复制/粘贴功能,如果剪贴板内容与序列号模式匹配,则可以填充所有编辑框,这也是很好的.
在先前的问题中,我询问了如何使用三个可选组件,其中用户还可以单独指定每个组件的位置(例如,代码部分和两个HTML Web应用程序).@Miral给了我一个很好的答案,我现在已经实现了:
三个用户定义位置的三个组件
我还有一个小小的审美问题.我总是CreateInputDirPage在向导中创建并询问用户.问题出现在wpSelectComponents.
问题:如果未选择组件,如何跳过页面.也就是说,如何跳过我的自定义页面?
我有一种与它有关的感觉ShouldSkipPage().但我不知道PageID我的自定义页面是什么,以及如何测试以查看选择了哪些组件.
function ShouldSkipPage(PageID:Integer):Boolean;
向导调用此事件函数来确定是否应显示特定页面(由PageID指定).如果您返回True,将跳过该页面; 如果您返回False,则可能会显示该页面.
我的脚本如下:
[Components]
Name: "Watson"; Description: "Watson Component"; Types: onlywatson full
Name: "Toby"; Description: "Toby Component"; Types: onlytoby full
Name: "Sherlock"; Description: "Sherlock Component"; Types: onlysherlock full
[Code]
var
TobyDirPage: TInputDirWizardPage;
SherlockDirPage: TInputDirWizardPage;
procedure InitializeWizard;
begin
TobyDirPage := CreateInputDirPage(wpSelectComponents,
'Select Location for Toby Web Pages', 'Where should we store the sample Toby application files?',
'The sample Toby stand-alone map application will be saved …Run Code Online (Sandbox Code Playgroud) 如何在Inno Setup [Code]中将[Run]部分变量传递给参数?
基本上,我想做以下几点.
InitializeWizard.[Run]部分中的可执行文件这是我的代码.
[Run]
Filename: "someProgram.exe"; Parameters: ??userInput??
[Code]
procedure InitializeWizard;
var
ConfigPage: TInputQueryWizardPage;
UserInput: String;
begin
{ Create the page }
ConfigPage :=
CreateInputQueryPage(
wpWelcome, 'User input', 'User input',
'Please specify the following information, then click Next.');
{ Add items (False means it's not a password edit) }
ConfigPage.Add('Input here:', False);
{ Set initial values (optional) }
ConfigPage.Values[0] := ExpandConstant('hello');
{ Read values into variables }
UserInput := …Run Code Online (Sandbox Code Playgroud) 我正在使用Inno安装程序,并尝试关联位于Program Files (x86)Windows 7中的程序.我有以下内容:
#define MyAppName "MyView"
#define MyAppExeName "MyView.exe"
[Setup]
AppName={#MyAppName}
[Registry]
Root: HKCR; Subkey: ".mpl"; ValueType: string; ValueName: ""; ValueData: "MyView"; Flags: uninsdeletevalue
Root: HKCR; Subkey: "MyView"; ValueType: string; ValueName: ""; ValueData: "MyView"; Flags: uninsdeletekey
Root: HKCR; Subkey: "MyView\delta.ico"; ValueType: string; ValueName: ""; ValueData: "{app}\GeoView.EXE,0"
Root: HKCR; Subkey: "MyView\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\MYVIEW.EXE"" ""%1"""
Run Code Online (Sandbox Code Playgroud)
为什么协会不起作用的任何建议?
基本上我需要的是一种自动更新WiX产品版本号(带Votive等的3.0)的方法,然后将该版本号放入Inno Setup"bootstrapper"中
我的流程几乎都是自动化的,但版本号仍然需要手动更新,这显然不太理想,但我找不到如何在编译时将值传递给Inno Setup(以及如何引用它们),在WiX项目中,我需要知道如何在Visual Studio 2008中的同一解决方案中引用不同项目的版本号
我正在使用Inno Setup(令人惊叹!).我希望自定义安装程序,以便我可以以输入字段的形式接受来自用户的字符串,并可能向其添加消息.
我怎样才能做到这一点?我浏览了一下文档,谷歌搜索并没有多少出现!
谢谢大家的帮助
我有一个小的控制台应用程序,它安装在我(更大)的应用程序中.使用Inno Setup创建设置,效果非常好.
我希望Inno Setup将一个或多个任务添加到Windows调度程序(启动控制台应用程序).有没有办法做到这一点?
我有一个带有版本信息的应用程序,我想将其包含在setup输出文件名中.例如,如果应用程序有版本,3.10.1我想获取setup_3.10.1.exe输出文件而不是默认值setup.exe作为Inno Setup生成的输出文件.
是否可以将某个应用程序的版本信息包含到设置输出文件名中?