Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mise à jour de la FAQ VB !

4 réponses
Avatar
La faq VB
Bonjour à tous,

Nous vous l'avions annoncé il y a quelques semaines, et c'est maintenant
chose faite : la FAQ du groupe a été mise à jour, avec pas moins de
18 nouveaux articles, dont 12 nouvelles questions et 6 mises à jour !

Au programme :
- Amélioration de l'aspect avec la colorisation syntaxique
des exemples de code,
- Enrichissement du contenu avec l'ajout de nouvelles références
externes et plus de liens entre articles,
- De nouvelles questions, des thèmes traités en profondeur,
- Et bien sur, des exemples concrets et prêts à l'emploi.

Chaque question a été traitée dans l'esprit habituel de la FAQ, essayant
d'apporter des réponses claires, précises, détaillées et illustrées.

Voici le programme détaillé de cette Release :

Les nouveautés :
----------------
Q 145 : Comment savoir si un programme s'exécute dans l'IDE ou en dehors?
http://faq.vb.free.fr/index.php?question=145
Q 146 : Comment bien tester l'égalité de deux nombres réels ?
http://faq.vb.free.fr/index.php?question=146
Q 147 : Conversion Long <=> RGB, RGB <=> Long
http://faq.vb.free.fr/index.php?question=147
Q 148 : Comment fonctionne la fonction Round ?
http://faq.vb.free.fr/index.php?question=148
Q 149 : La récursivité. Comment écrire des fonctions récursives en VB ?
http://faq.vb.free.fr/index.php?question=149
Q 150 : Les options régionales : leur bon usage, etc.
http://faq.vb.free.fr/index.php?question=150
Q 151 : Comment trier des données en VB ? Les différents algorithmes ...
http://faq.vb.free.fr/index.php?question=151
Q 152 : Comment lancer un programme de façon synchrone ?
http://faq.vb.free.fr/index.php?question=152
Q 153 : Qui sont les MVP Microsoft ?
http://faq.vb.free.fr/index.php?question=153
Q 154 : Comment ajouter des jours, mois, etc. à une date en VB ?
http://faq.vb.free.fr/index.php?question=154
Q 155 : Recherche rapide d'éléments dans une listbox ou combobox ?
http://faq.vb.free.fr/index.php?question=155
Q 156 : Déterminer dates de création, modification, etc. d'un fichier ?
http://faq.vb.free.fr/index.php?question=156

Les mises à jour :
------------------
Q 7 : Comment exécuter un programme depuis une application VB ?
http://faq.vb.free.fr/index.php?question=7
Q 26 : Comment renommer un fichier ?
http://faq.vb.free.fr/index.php?question=26
Q 84 : Comment connaitre le nombre de jours d'un mois donné ?
http://faq.vb.free.fr/index.php?question=84
Q 109 : A quoi sert un hWnd ?
http://faq.vb.free.fr/index.php?question=109
Q 122 : Quelles sont les différences entre les VB (VBA,VBS, VB6, .net) ?
http://faq.vb.free.fr/index.php?question=122
Q 125 : Comment créer une feuille aux countours irréguliers ?
http://faq.vb.free.fr/index.php?question=125

les articles sont aussi accessibles depuis l'index:
http://faq.vb.free.fr/index.php?rubrique=0

Nous espérons que les thèmes abordés ainsi que les questions traitées
correspondent à vos besoins.

N'hésitez pas à nous faire part de vos remarques !

--
François Picalausa (MSP) et Jean-marc Noury (MVP), pour la FAQ VB
http://faq.vb.free.fr

4 réponses

Avatar
Daniel AUBRY
Bonjour, en consultant la Q145 on peut lire ceci :

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

Moi je le résume à ceci :

If App.LogMode <> 0 then
MsgBox "Le programme a été lancé depuis l'IDE de VB.", vbInformation
else
MsgBox "Le programme a été lancé depuis l'IDE de VB.", vbInformation
end if

Plus simple, non ?

Mais ai-je raison ?

Dany

"La faq VB" a écrit dans le message de news:
45e1f45e$0$2931$
Bonjour à tous,

Nous vous l'avions annoncé il y a quelques semaines, et c'est maintenant
chose faite : la FAQ du groupe a été mise à jour, avec pas moins de
18 nouveaux articles, dont 12 nouvelles questions et 6 mises à jour !

Au programme :
- Amélioration de l'aspect avec la colorisation syntaxique
des exemples de code,
- Enrichissement du contenu avec l'ajout de nouvelles références
externes et plus de liens entre articles,
- De nouvelles questions, des thèmes traités en profondeur,
- Et bien sur, des exemples concrets et prêts à l'emploi.

Chaque question a été traitée dans l'esprit habituel de la FAQ, essayant
d'apporter des réponses claires, précises, détaillées et illustrées.

Voici le programme détaillé de cette Release :

Les nouveautés :
----------------
Q 145 : Comment savoir si un programme s'exécute dans l'IDE ou en dehors?
http://faq.vb.free.fr/index.php?question5
Q 146 : Comment bien tester l'égalité de deux nombres réels ?
http://faq.vb.free.fr/index.php?question6
Q 147 : Conversion Long <=> RGB, RGB <=> Long
http://faq.vb.free.fr/index.php?question7
Q 148 : Comment fonctionne la fonction Round ?
http://faq.vb.free.fr/index.php?question8
Q 149 : La récursivité. Comment écrire des fonctions récursives en VB ?
http://faq.vb.free.fr/index.php?question9
Q 150 : Les options régionales : leur bon usage, etc.
http://faq.vb.free.fr/index.php?question0
Q 151 : Comment trier des données en VB ? Les différents algorithmes ...
http://faq.vb.free.fr/index.php?question1
Q 152 : Comment lancer un programme de façon synchrone ?
http://faq.vb.free.fr/index.php?question2
Q 153 : Qui sont les MVP Microsoft ?
http://faq.vb.free.fr/index.php?question3
Q 154 : Comment ajouter des jours, mois, etc. à une date en VB ?
http://faq.vb.free.fr/index.php?question4
Q 155 : Recherche rapide d'éléments dans une listbox ou combobox ?
http://faq.vb.free.fr/index.php?question5
Q 156 : Déterminer dates de création, modification, etc. d'un fichier ?
http://faq.vb.free.fr/index.php?question6

Les mises à jour :
------------------
Q 7 : Comment exécuter un programme depuis une application VB ?
http://faq.vb.free.fr/index.php?question=7
Q 26 : Comment renommer un fichier ?
http://faq.vb.free.fr/index.php?question&
Q 84 : Comment connaitre le nombre de jours d'un mois donné ?
http://faq.vb.free.fr/index.php?question„
Q 109 : A quoi sert un hWnd ?
http://faq.vb.free.fr/index.php?question9
Q 122 : Quelles sont les différences entre les VB (VBA,VBS, VB6, .net) ?
http://faq.vb.free.fr/index.php?question2
Q 125 : Comment créer une feuille aux countours irréguliers ?
http://faq.vb.free.fr/index.php?question5

les articles sont aussi accessibles depuis l'index:
http://faq.vb.free.fr/index.php?rubrique=0

Nous espérons que les thèmes abordés ainsi que les questions traitées
correspondent à vos besoins.

N'hésitez pas à nous faire part de vos remarques !

--
François Picalausa (MSP) et Jean-marc Noury (MVP), pour la FAQ VB
http://faq.vb.free.fr




Avatar
Daniel AUBRY
Une p'tite boulette corrigée après le else :

If App.LogMode <> 0 then
MsgBox "Le programme a été lancé depuis l'IDE de VB.", vbInformation
else
MsgBox "Le programme n'a été lancé depuis l'IDE de VB.", vbInformation
end if

"Daniel AUBRY" a écrit dans le message de news:
45e304d0$0$31970$
Bonjour, en consultant la Q145 on peut lire ceci :

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

Moi je le résume à ceci :

If App.LogMode <> 0 then
MsgBox "Le programme a été lancé depuis l'IDE de VB.", vbInformation
else
MsgBox "Le programme a été lancé depuis l'IDE de VB.", vbInformation
end if

Plus simple, non ?

Mais ai-je raison ?

Dany

"La faq VB" a écrit dans le message de news:
45e1f45e$0$2931$
Bonjour à tous,

Nous vous l'avions annoncé il y a quelques semaines, et c'est maintenant
chose faite : la FAQ du groupe a été mise à jour, avec pas moins de
18 nouveaux articles, dont 12 nouvelles questions et 6 mises à jour !

Au programme :
- Amélioration de l'aspect avec la colorisation syntaxique
des exemples de code,
- Enrichissement du contenu avec l'ajout de nouvelles références
externes et plus de liens entre articles,
- De nouvelles questions, des thèmes traités en profondeur,
- Et bien sur, des exemples concrets et prêts à l'emploi.

Chaque question a été traitée dans l'esprit habituel de la FAQ, essayant
d'apporter des réponses claires, précises, détaillées et illustrées.

Voici le programme détaillé de cette Release :

Les nouveautés :
----------------
Q 145 : Comment savoir si un programme s'exécute dans l'IDE ou en dehors?
http://faq.vb.free.fr/index.php?question5
Q 146 : Comment bien tester l'égalité de deux nombres réels ?
http://faq.vb.free.fr/index.php?question6
Q 147 : Conversion Long <=> RGB, RGB <=> Long
http://faq.vb.free.fr/index.php?question7
Q 148 : Comment fonctionne la fonction Round ?
http://faq.vb.free.fr/index.php?question8
Q 149 : La récursivité. Comment écrire des fonctions récursives en VB ?
http://faq.vb.free.fr/index.php?question9
Q 150 : Les options régionales : leur bon usage, etc.
http://faq.vb.free.fr/index.php?question0
Q 151 : Comment trier des données en VB ? Les différents algorithmes ...
http://faq.vb.free.fr/index.php?question1
Q 152 : Comment lancer un programme de façon synchrone ?
http://faq.vb.free.fr/index.php?question2
Q 153 : Qui sont les MVP Microsoft ?
http://faq.vb.free.fr/index.php?question3
Q 154 : Comment ajouter des jours, mois, etc. à une date en VB ?
http://faq.vb.free.fr/index.php?question4
Q 155 : Recherche rapide d'éléments dans une listbox ou combobox ?
http://faq.vb.free.fr/index.php?question5
Q 156 : Déterminer dates de création, modification, etc. d'un fichier ?
http://faq.vb.free.fr/index.php?question6

Les mises à jour :
------------------
Q 7 : Comment exécuter un programme depuis une application VB ?
http://faq.vb.free.fr/index.php?question=7
Q 26 : Comment renommer un fichier ?
http://faq.vb.free.fr/index.php?question&
Q 84 : Comment connaitre le nombre de jours d'un mois donné ?
http://faq.vb.free.fr/index.php?question„
Q 109 : A quoi sert un hWnd ?
http://faq.vb.free.fr/index.php?question9
Q 122 : Quelles sont les différences entre les VB (VBA,VBS, VB6, .net) ?
http://faq.vb.free.fr/index.php?question2
Q 125 : Comment créer une feuille aux countours irréguliers ?
http://faq.vb.free.fr/index.php?question5

les articles sont aussi accessibles depuis l'index:
http://faq.vb.free.fr/index.php?rubrique=0

Nous espérons que les thèmes abordés ainsi que les questions traitées
correspondent à vos besoins.

N'hésitez pas à nous faire part de vos remarques !

--
François Picalausa (MSP) et Jean-marc Noury (MVP), pour la FAQ VB
http://faq.vb.free.fr








Avatar
Jean-marc
Daniel AUBRY wrote:
Une p'tite boulette corrigée après le else :

If App.LogMode <> 0 then
MsgBox "Le programme a été lancé depuis l'IDE de VB.", vbInformation
else
MsgBox "Le programme n'a été lancé depuis l'IDE de VB.",
vbInformation end if



Hello Daniel,

Ca semble effectivement une bonne idée :-)
Je n'ai jamais pensé à utiliser Logmode pour ça, mais à
vue de nez, ça me semble fonctionner dans tous les cas.

Peut être devrions nous l'ajouter à la question 145 effectivement!

Merci beaucoup en tout cas pour ton feedback !

Cordialement,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
Picalausa François
Hello,

En général, App.LogMode est plus simple à utiliser. Pour information,
néanmoins, elle possède trois désavantages:
1/ Le code est compilé et apparait dans l'exécutable final (ce qui n'est pas
génant dans 99,9% des cas), au contraire des appels à l'objet Debug.
2/ Tout comme le code proposé dans l'article, en cas d'exécution en IDE,
pour une DLL, l'état renvoyé est celui de la DLL et non de l'appelant. Du
code tout à fait spécifique(*) peut être écrit pour palier à ce "problème";
c'était notament utilisé pour les DLL réalisant des opérations de
sous-classement, pour lesquelles VB6 n'est pas particulièrement adapté.
3/ Les fonctions de log ne sont pas documentées comme permettant de réaliser
la distinction entre IDE et exécutable. Même si cette "spécification de
fait" a peu de chance de changer maintenant, travailler avec quelquechose de
non documenté peut poser problème à certains. Le code de la faq repose au
contraire sur une propriété entièrement documentée, à savoir "Assert
invocations work only within the development environment. When the module is
compiled into an executable, the method calls on the Debug object are
omitted."

Bien entendu, dans 99,9% des cas, il n'y a pas de problèmes, et l'avantage
en terme de simplicité n'est probablement pas à négliger.
Comme le disait Jean-Marc, c'est très certainement à documenter dans la FAQ.

(*) Par exemple, pour détecter VB6.exe, en supposant que l'exécutable final
ne contienne pas VB6.exe dans son chemin :
Private Declare Function GetModuleFileName _
Lib "Kernel32" _
Alias "GetModuleFileNameA" _
( _
ByVal hModule As Long, _
ByVal lpFilename As String, _
ByVal nSize As Long _
) _
As Long
Private Declare Function GetModuleHandle _
Lib "Kernel32" _
Alias "GetModuleHandleA" _
( _
ByVal lpModuleName As String _
) _
As Long

Private Function IsRunningIde() As Boolean
Dim hmod As Long
Dim size As Long
Dim strProcessName As String

hmod = GetModuleHandle(vbNullString)
size = 0

'Incrémente la taille jusqu'à avoir le chemin complet
Do
size = size + 260
strProcessName = String$(size, vbNullChar)
Loop While (size = GetModuleFileName(hmod, strProcessName, size))

InIDE = (UCase$(Trim$(strProcessName)) Like "*VB6.EXE*")
End Function

--
Picalausa François

"Daniel AUBRY" a écrit dans le message de news:
45e30845$0$16841$
Une p'tite boulette corrigée après le else :

If App.LogMode <> 0 then
MsgBox "Le programme a été lancé depuis l'IDE de VB.", vbInformation
else
MsgBox "Le programme n'a été lancé depuis l'IDE de VB.", vbInformation
end if

"Daniel AUBRY" a écrit dans le message de news:
45e304d0$0$31970$
Bonjour, en consultant la Q145 on peut lire ceci :

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

Moi je le résume à ceci :

If App.LogMode <> 0 then
MsgBox "Le programme a été lancé depuis l'IDE de VB.", vbInformation
else
MsgBox "Le programme a été lancé depuis l'IDE de VB.", vbInformation
end if

Plus simple, non ?

Mais ai-je raison ?

Dany

"La faq VB" a écrit dans le message de news:
45e1f45e$0$2931$
Bonjour à tous,

Nous vous l'avions annoncé il y a quelques semaines, et c'est maintenant
chose faite : la FAQ du groupe a été mise à jour, avec pas moins de
18 nouveaux articles, dont 12 nouvelles questions et 6 mises à jour !

Au programme :
- Amélioration de l'aspect avec la colorisation syntaxique
des exemples de code,
- Enrichissement du contenu avec l'ajout de nouvelles références
externes et plus de liens entre articles,
- De nouvelles questions, des thèmes traités en profondeur,
- Et bien sur, des exemples concrets et prêts à l'emploi.

Chaque question a été traitée dans l'esprit habituel de la FAQ, essayant
d'apporter des réponses claires, précises, détaillées et illustrées.

Voici le programme détaillé de cette Release :

Les nouveautés :
----------------
Q 145 : Comment savoir si un programme s'exécute dans l'IDE ou en
dehors?
http://faq.vb.free.fr/index.php?question5
Q 146 : Comment bien tester l'égalité de deux nombres réels ?
http://faq.vb.free.fr/index.php?question6
Q 147 : Conversion Long <=> RGB, RGB <=> Long
http://faq.vb.free.fr/index.php?question7
Q 148 : Comment fonctionne la fonction Round ?
http://faq.vb.free.fr/index.php?question8
Q 149 : La récursivité. Comment écrire des fonctions récursives en VB ?
http://faq.vb.free.fr/index.php?question9
Q 150 : Les options régionales : leur bon usage, etc.
http://faq.vb.free.fr/index.php?question0
Q 151 : Comment trier des données en VB ? Les différents algorithmes ...
http://faq.vb.free.fr/index.php?question1
Q 152 : Comment lancer un programme de façon synchrone ?
http://faq.vb.free.fr/index.php?question2
Q 153 : Qui sont les MVP Microsoft ?
http://faq.vb.free.fr/index.php?question3
Q 154 : Comment ajouter des jours, mois, etc. à une date en VB ?
http://faq.vb.free.fr/index.php?question4
Q 155 : Recherche rapide d'éléments dans une listbox ou combobox ?
http://faq.vb.free.fr/index.php?question5
Q 156 : Déterminer dates de création, modification, etc. d'un fichier ?
http://faq.vb.free.fr/index.php?question6

Les mises à jour :
------------------
Q 7 : Comment exécuter un programme depuis une application VB ?
http://faq.vb.free.fr/index.php?question=7
Q 26 : Comment renommer un fichier ?
http://faq.vb.free.fr/index.php?question&
Q 84 : Comment connaitre le nombre de jours d'un mois donné ?
http://faq.vb.free.fr/index.php?question„
Q 109 : A quoi sert un hWnd ?
http://faq.vb.free.fr/index.php?question9
Q 122 : Quelles sont les différences entre les VB (VBA,VBS, VB6, .net) ?
http://faq.vb.free.fr/index.php?question2
Q 125 : Comment créer une feuille aux countours irréguliers ?
http://faq.vb.free.fr/index.php?question5

les articles sont aussi accessibles depuis l'index:
http://faq.vb.free.fr/index.php?rubrique=0

Nous espérons que les thèmes abordés ainsi que les questions traitées
correspondent à vos besoins.

N'hésitez pas à nous faire part de vos remarques !

--
François Picalausa (MSP) et Jean-marc Noury (MVP), pour la FAQ VB
http://faq.vb.free.fr