首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在Inno安装程序中的所有向导页之前显示自定义窗口?

是否可以在Inno安装程序中的所有向导页之前显示自定义窗口?
EN

Stack Overflow用户
提问于 2020-03-31 16:57:45
回答 2查看 293关注 0票数 0

我像这样从dll导出一个函数:

代码语言:javascript
复制
function IsClientLaunched : Boolean;                                                  
external 'IsClientStarted@files:IsStart.dll stdcall setuponly';

我需要这个函数来检查我的应用程序是否已经在运行。如果正在运行,则返回True,如果没有返回false。我需要做的是,根据该函数的结果,我必须使用自定义消息和2个按钮显示自定义窗口:ContinueCancel。因此,如果我关闭应用程序并按Continue键,那么安装过程就会继续进行。如果我按下Cancel,那么安装程序就会完成它的工作并关闭。问题是,我不知道如何在所有向导页之前显示自定义窗口,以及是否可能这样做?

此外,我还使用ISSI显示启动屏幕:

代码语言:javascript
复制
#define ISSI_Splash "C:\InnoSetupProject\Images\client.bmp"                    
#define ISSI_Splash_T 3                                                                      
#define ISSI_Splash_X 500                                                                     
#define ISSI_Splash_Y 220                                                                                                                                     

这也有一个问题。如果我在第一个向导页面之前显示MsgBox对话框,并在其上按Cancel,我希望我的安装程序关闭,但它会显示启动屏幕,然后关闭。如果我需要InitializeSetup的话,我可以取消它吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-31 19:42:10

使用以下代码:

Is it possible to check if program is already running before trying to install it? (Inno Setup)

(这是你的问题!)

只需将IsAppRunning替换为IsClientLaunched即可。

不过,现在的问题是,您是否需要您的自定义IsClientLaunched。您可以使用IsAppRunning代替。

票数 0
EN

Stack Overflow用户

发布于 2020-03-31 18:37:26

根据CreateCustomPage文档,创建自定义页面的参数如下:

代码语言:javascript
复制
function CreateCustomPage(const AfterID: Integer;
                          const ACaption,
                          ADescription: String): TWizardPage;

如您所见,您正在提供AfterID,这意味着您可以告诉它在之后显示一个自定义页面(一个特定的内置页面)。

但是,您考虑过使用PrepareToInstall吗?上面写着:

您可以使用此事件函数检测和安装缺少的先决条件和/或关闭即将更新的任何应用程序。

所以也许你可以在那里做测试,并显示任何需要的弹出消息框。然后,根据答复,您可以返回适当的错误消息。文件解释说。

也许还有其他的方法来做你想做的事。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60955902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档