Question 145

Comment savoir si on exécute le programme dans l'IDE ou en dehors (exécutable) ?

Il peut être utile de savoir si on exécute le programme depuis l'IDE ou non. Pour se faire, on peut utiliser plusieurs méthodes :

  • Utilisation de Assert
  • Utilisation des directives de compilation conditionnelle
Utilisation de Assert
Cette méthode utilise le fait que la méthode Assert de l'objet Debug n'est exécutée que depuis l'IDE.

Placer le code suivant dans un module (.bas) :

Option Explicit

Private p_bRunIde As Boolean

Public Function IsRunningIde() As Boolean
    Debug.Assert pSetvarIDEToTrue
    IsRunningIde = p_bRunIde
End Function

Private Function pSetvarIDEToTrue() As Boolean
    p_bRunIde = True
    pSetvarIDEToTrue = True
End Function

Pour l'utilisation, il suffit alors de faire :

Private Sub Form_Load()
    Dim bIsRunningIde As Boolean

    bIsRunningIde = IsRunningIde()
    If bIsRunningIde Then
        MsgBox "Le programme a été lancé depuis l'IDE de VB.", vbInformation
    Else
        MsgBox "Le programme n'a pas été lancé depuis l'IDE.", vbInformation
    End If
End Sub

Directives de compilation conditionnelle
Pour ceux qui ne souhaitent pas le tester par le code, il est possible d'utiliser les directives de compilation conditionnelles. On utilise pour cela des constructions utilisant #if ... Then ... #else ... #endif.
Les détails concernant la compilation conditionnelle sont disponible depuis un lien dans la section En Savoir plus.
Pour l'utilisation, il suffit de définir une constante, soit dans le code, et on déclarera alors une constante publique, soit via une constante de compilation (depuis l'IDE, Menu Projet->Propriétés, 2ème onglet 'Make'). On teste alors simplement :

Const Mode_Debug As Boolean = True
'
Private Sub Form_Load()

#If Mode_Debug Then
    MsgBox "debug"
#Else
    MsgBox "pas debug"
#End If

End Sub

Pour ne pas inclure le code de débuggage, il suffit de changer la valeur de la variable Mode_Debug à False, ou encore de commenter la déclaration.
L'intérêt par rapport à un classique If ... Then ... Else ... Endif est que les conditions sont évaluées lors de la compilation. L'exécutable généré ne contiendra que les instructions nécessaires.
En savoir plus

Date de publication : 25 février 2007
Dernière modification : 25 février 2007
Rubriques : Divers
Mots-clés : IDE, exécution, mise au point, debug, debuggage, exécutable, programme