[ADD-IN] COMPLÉMENT VB6 POUR CALCULER LE TEMPS D'EXÉCUTION DU CODE

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 10 juin 2007 à 01:55
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 4 févr. 2009 à 09:01
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43061-add-in-complement-vb6-pour-calculer-le-temps-d-execution-du-code

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
4 févr. 2009 à 09:01
voir cette source:

http://www.vbfrance.com/codes/UTILISER-OBJETS-EXTERNE-DANS-VOS-PROJETS-ADDIN_24092.aspx

te permettra d'effectuer toi même l'appel du compilo
olilej Messages postés 2 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 4 février 2009
4 févr. 2009 à 00:32
Bonjour Mortalino et merci pour ton code,
Je m'en suis inspiré pour essayer de créer un Add-in permettant de faire des post build events en VB6. le problème est qu'il n'existe pas de EndCompile event dans mon objet VBBuildEvents, aurais-tu une idée ?

Dim oEvents2 as Events2
Set oEvents2 = VBInstance.Events
Set moIDEEvents = oEvents2.VBBuildEvents
Merci
Olivier
waluigii Messages postés 35 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 5 janvier 2008
14 juin 2007 à 16:10
Slt,

Magnifico mortalino !!!

@++

Bon succès à toutes/tous
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
13 juin 2007 à 02:40
Laisse tomber le comm précédant, je suis mauvais, j'avais pas vu ma variable MyStart dans le Timer :$

Bref modif effectuée et source MAJ.
Merci encore Rey ;)

@++
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
12 juin 2007 à 20:38
Arf, j'obtiens des résultats surprenant..
Bien que l'exécution d'une appli dure plusieurs secondes, le résutat n'excède pas 0.400.
Ce te le fait aussi ?
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
12 juin 2007 à 20:19
Excellent Renfield, merci je vais creuser ça de suite ;)
Te tiens au courant !

@++
Ps : oui, le msgbox est vraiment génant, mais c'était pour être sur. Là avec les évènements, ce sera mille fois plus pratique ;)
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
11 juin 2007 à 09:02
pas très pratiques, ce MsgBox,

sinon, c'est une bonne idée, à creuser...

on pourrais se passer des menus Start et End, en se branchant aux evenemenements liés à l'execution (EnterRunMode et EnterDesignMode) :


Private WithEvents moIDEEvents As VBBuildEvents

Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)
Dim oEvents2 As Events2
Dim oNewMenu As Office.CommandBarPopup
Set VBInstance = Application
Set PrjHandler = VBInstance.Events.VBProjectsEvents
Set CmpHandler = VBInstance.Events.VBComponentsEvents(Nothing)
Set oEvents2 = VBInstance.Events
Set moIDEEvents = oEvents2.VBBuildEvents

On Error GoTo AddToAddInCommandBarErr
Set oNewMenu = VBInstance.CommandBars.FindControl(Id:=30038)
If Not oNewMenu Is Nothing Then
Set MenuItem = oNewMenu.Controls.Add(msoControlButton, temporary:=True)
With MenuItem
.Caption = "Temps d'execution..."
.BeginGroup = True
End With
Set moRapport = VBInstance.Events.CommandBarEvents(MenuItem)
End If
Exit Sub

AddToAddInCommandBarErr:
MsgBox "erreur dans la création du CommandBar"
End Sub

'Private Sub moMenuEnd_Click(ByVal CommandBarControl As Object, handled As Boolean, CancelDefault As Boolean)
' EndTimer
'End Sub
'
'Private Sub moMenuStart_Click(ByVal CommandBarControl As Object, handled As Boolean, CancelDefault As Boolean)
' StartTimer
'End Sub

Private Sub moIDEEvents_EnterDesignMode()
EndTimer
End Sub

Private Sub moIDEEvents_EnterRunMode()
StartTimer
End Sub
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
10 juin 2007 à 03:54
Salut WaLuigii et merci ;)

Pas grand chose, je voulais absolument faire un Add-in VB pour apprendre, mais les plus intéressant ont été fait, donc j'ai pris ce qu'il restait ;)
Pis (bien que ça ne m'arrive pas souvent) il me fallait quelque chose d'intégré à VB pour calculer ça, sans mettre moi même un Timer dans le code que j'exécute.

Par la suite, je vais essayer de l'améliorer, à savoir, générer divers rapport avec plus d'info (genre charge CPU, et, un peu plus complexe, et voir si c'est faisable, décomposer le temps d'exécution des procédures lancés, avec leur nom)

Merci en tout cas pour tes encouragements. :p
@ bientôt,
mortalino
waluigii Messages postés 35 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 5 janvier 2008
10 juin 2007 à 03:44
Slt,

Très intéressant tout ça! Qu'est-ce qui t'a incité pour mettre le pied dans ce projet?

Bravo!
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
10 juin 2007 à 01:55
Ah et pour l'utiliser, il faut lancer le projet, créer la dll, et fermer.
Ensuite, tous les projets VB lancés après ça, posséderont la complément.

@++
Rejoignez-nous