我有两种可能的构建选项。由于我不希望我的客户使用某些参数启动安装程序,因此我最好将它们传递给编译器并在我的代码中完成所有工作。
假设我有一个变量UNION,它可能有两个值:0和1。我必须在代码中分析该变量的值,并根据结果包含或不包含某些文件。我知道如何将参数传递给安装程序本身,但如何将它们传递给编译器?
这是一些代码:
procedure CurStepChanged(CurStep: TSetupStep);
var
Code: Integer;
begin
if CurStep = ssDone then
begin
if not IsUnion then
begin
DeleteFile(ExpandConstant('{app}')+'\Locale\C4Union.UKR');
DeleteFile(ExpandConstant('{app}')+'\Locale\C4Union.ENU');
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
IsUnion该函数应该分析从命令行获取的参数,然后根据结果完成其工作。
我正在使用 Inno Setup 来创建安装程序。当我启动我创建的安装程序时,我需要检查我尝试安装的程序是否已经在运行,如果它正在运行,那么我必须显示相应的消息,直到我关闭它或退出。可以这样做吗?
我一直在调试我的脚本并意识到 if query ParamCount,它会返回,4而我实际上没有从命令行传递任何内容。
然后我检查了这些参数是什么样的GetCmdTail
这是我得到的:
/SL5="$3404B2,46402082,879616, <path_to_setup.exe>" /SPAWNWND=$2A05AE /NOTIFYWND=$3E0594 /DEBUGWND=$601F6
Run Code Online (Sandbox Code Playgroud)
我不知道这些东西意味着什么,但我想完全理解它。/SL5、/SPAWNWND、/NOTIFYWND、是什么/DEBUGWND?我应该如何以及何时使用它们?如果有人能详细说明这一点,但同时保持解释尽可能简单,我将非常感激。
我注意到在许多 Delphi 项目中都有一个文件是midas.dll. 我尝试上网寻找它的作用,但失败了。有人可以向我解释为什么我们需要吗midas.dll?