You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让应用在启动屏(Splash Screen)运行时检测应用目录下的EXE文件是否存在

启动屏阶段检测指定EXE存在性的实现方案

首先在代码文件顶部导入IO命名空间,用于文件操作:
Imports System.IO

修改后的完整代码如下,检测逻辑会嵌入到原有启动进度的验证阶段:

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim splash As Splash_screen = CType(My.Application.SplashScreen, Splash_screen)
    ' 自定义需要检测的EXE文件名,后续增减检测项直接修改此数组即可
    Dim targetExes As String() = {"App1.exe", "App2.exe", "App3.exe"}
    Dim missingList As New List(Of String)
    Dim progressTips() As String = {"Starting Up...", "Verifying apps...", "Finalizing"}

    For i As Integer = 0 To progressTips.Length - 1
        splash.UpdateProgress(progressTips(i), CInt((i + 1) / progressTips.Length * 100))
        
        ' 在验证组件的进度阶段执行EXE存在性检测
        If i = 1 Then
            For Each exeName In targetExes
                Dim fullPath = Path.Combine(Application.StartupPath, exeName)
                If Not File.Exists(fullPath) Then
                    missingList.Add(exeName)
                End If
            Next
            ' 检测到缺失文件的处理逻辑,可根据业务需求调整
            If missingList.Count > 0 Then
                MessageBox.Show($"缺失必要运行组件:{Environment.NewLine}{String.Join(Environment.NewLine, missingList)}", "启动失败", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Application.Exit()
                Return
            End If
        End If
        
        System.Threading.Thread.Sleep(1500)
    Next
End Sub
End Class

逻辑说明

  • 完全兼容你原有启动屏的进度流程,检测动作和「Verifying apps...」提示同步执行,用户感知连贯
  • 待检测EXE统一存放在targetExes数组中,后续要新增/删除检测对象直接修改数组内容即可,无需调整核心逻辑
  • 采用Path.Combine拼接应用根目录和EXE文件名,避免手动拼接路径时出现的斜杠兼容问题
  • 目前缺失文件时默认弹出错误提示并终止启动,你可以根据需求修改该分支逻辑,比如忽略非核心文件、跳过敏检等
  • 如果需要把启动提示改成中文,直接替换progressTips数组内的文本即可,比如改为{"正在启动...", "正在验证组件...", "正在完成启动"}

内容的提问来源于stack exchange,提问作者GYFS Jr.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 12:18:04