Je souhaite connaitre le code avec lequel dès que je change d'application me
mentionne sous excel le temps passé avant la fermeture (Pourquoi cela me
direz vous je suis consultant et je souhaiterais connaitre le temps passé
sur chaque dossier (logiciel différents)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc
"rech logis" a écrit dans le message de news:BF4CED63.4F2%
Bonjour,
Je souhaite connaitre le code avec lequel dès que je change d'application
me
mentionne sous excel le temps passé avant la fermeture (Pourquoi cela me direz vous je suis consultant et je souhaiterais connaitre le temps passé sur chaque dossier (logiciel différents)
Hello,
pas très simple. Je peux imaginer un programme qui va à intervalle régulier chercher la liste des fenêtres ouvertes, compare cette liste avec la liste à l'instant t-1, note les ouverture et fermetures, enregistre les temps de début et de fin de tout cela puis fais les soustractions nécessaires, appli (donc fenêtre) par appli.
On peut peut être aussi juste jouer avec GetForegroundWindow() qui donnera de meilleurs résultats encore, surtout si tu lances plusieurs programmes en même temps, tu pourrais logguer les vrais temps passés dans la fenêtre active (celle qui est au premier plan).
En fin de journée, ou à intervalle fixe, met à jour un fichier csv voire écrit directement dans une feuille Excel.
Amha, Tu peux partir sur cette base pour faire quelques chose.
Tu as quelques heures de programmation devant toi pour faire qq chose qui marche bien :-)
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"rech logis" <rechlogis@noos.fr> a écrit dans le message de
news:BF4CED63.4F2%rechlogis@noos.fr...
Bonjour,
Je souhaite connaitre le code avec lequel dès que je change d'application
me
mentionne sous excel le temps passé avant la fermeture (Pourquoi cela me
direz vous je suis consultant et je souhaiterais connaitre le temps passé
sur chaque dossier (logiciel différents)
Hello,
pas très simple. Je peux imaginer un programme
qui va à intervalle régulier chercher la liste des fenêtres
ouvertes, compare cette liste avec la liste à l'instant
t-1, note les ouverture et fermetures, enregistre les temps
de début et de fin de tout cela puis fais les soustractions
nécessaires, appli (donc fenêtre) par appli.
On peut peut être aussi juste jouer avec GetForegroundWindow()
qui donnera de meilleurs résultats encore, surtout si tu lances
plusieurs programmes en même temps, tu pourrais logguer les vrais
temps passés dans la fenêtre active (celle qui est au premier plan).
En fin de journée, ou à intervalle fixe, met à
jour un fichier csv voire écrit directement dans une feuille
Excel.
Amha, Tu peux partir sur cette base pour faire quelques chose.
Tu as quelques heures de programmation devant toi pour faire qq
chose qui marche bien :-)
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
"rech logis" a écrit dans le message de news:BF4CED63.4F2%
Bonjour,
Je souhaite connaitre le code avec lequel dès que je change d'application
me
mentionne sous excel le temps passé avant la fermeture (Pourquoi cela me direz vous je suis consultant et je souhaiterais connaitre le temps passé sur chaque dossier (logiciel différents)
Hello,
pas très simple. Je peux imaginer un programme qui va à intervalle régulier chercher la liste des fenêtres ouvertes, compare cette liste avec la liste à l'instant t-1, note les ouverture et fermetures, enregistre les temps de début et de fin de tout cela puis fais les soustractions nécessaires, appli (donc fenêtre) par appli.
On peut peut être aussi juste jouer avec GetForegroundWindow() qui donnera de meilleurs résultats encore, surtout si tu lances plusieurs programmes en même temps, tu pourrais logguer les vrais temps passés dans la fenêtre active (celle qui est au premier plan).
En fin de journée, ou à intervalle fixe, met à jour un fichier csv voire écrit directement dans une feuille Excel.
Amha, Tu peux partir sur cette base pour faire quelques chose.
Tu as quelques heures de programmation devant toi pour faire qq chose qui marche bien :-)
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Jean-Marc
"Jean-Marc" a écrit dans le message de news:43273470$0$6575$
"rech logis" a écrit dans le message de news:BF4CED63.4F2% > Bonjour, > > Je souhaite connaitre le code avec lequel dès que je change
d'application
me > mentionne sous excel le temps passé avant la fermeture (Pourquoi cela me > direz vous je suis consultant et je souhaiterais connaitre le temps
passé
> sur chaque dossier (logiciel différents)
Allez, tant que j'y étais...
Tu as 99,9% du boulot fait. Reste à adapter aux logiciels que tu utilises, en mettant les bon noms dans Form_load. Ajuster NB_APP en fonction du nombre d'applis. Les labels sont la juste pour faire joli, on peut les enlever.
Il ne reste qu'à faire la sauvegarde dans un fichier csv ou Excel directment des valeurs des App_time(n).
Moi ce que je ferais, je ferais une sub Sauvegarde() et je l'appelerais toutes les 5 minutes par exemple, ainsi que dans le form_unload.
Je metterais tout ça dans un simple fichier texte (csv), il est inutile d'alourdir ce petit programme tout simple en lui infligeant une liaison forte avec une application tierce, alors qu'un fichier texte est si pratique.
' ' Option Explicit
Private Declare Function GetForegroundWindow Lib "user32" () As Long Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Const NB_APP As Long = 2 Const TIMER_INTER As Long = 1000
Dim Applis(NB_APP) As String Dim App_time(NB_APP) As Long
For i = 1 To NB_APP lblApplis(i - 1) = Applis(i) Next i
End Sub
Private Sub Timer1_Timer() Dim ret As Long Dim title As String Dim i As Integer
title = String(256, " ") ret = GetForegroundWindow GetWindowText ret, title, 255 Label1.Caption = title For i = 1 To NB_APP If InStr(title, Applis(i)) > 0 Then App_time(i) = App_time(i) + (TIMER_INTER / 1000) Exit For End If
Next i For i = 1 To NB_APP lblTpsAppli(i - 1) = App_time(i) lblTpsAppli(i - 1).Refresh Next i End Sub
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"Jean-Marc" <NO_SPAM_jean_marc_n2@yahoo.fr> a écrit dans le message de
news:43273470$0$6575$ba620e4c@news.skynet.be...
"rech logis" <rechlogis@noos.fr> a écrit dans le message de
news:BF4CED63.4F2%rechlogis@noos.fr...
> Bonjour,
>
> Je souhaite connaitre le code avec lequel dès que je change
d'application
me
> mentionne sous excel le temps passé avant la fermeture (Pourquoi cela me
> direz vous je suis consultant et je souhaiterais connaitre le temps
passé
> sur chaque dossier (logiciel différents)
Allez, tant que j'y étais...
Tu as 99,9% du boulot fait. Reste à adapter aux logiciels
que tu utilises, en mettant les bon noms dans Form_load.
Ajuster NB_APP en fonction du nombre d'applis.
Les labels sont la juste pour faire joli, on peut les
enlever.
Il ne reste qu'à faire la sauvegarde dans un fichier csv
ou Excel directment des valeurs des App_time(n).
Moi ce que je ferais, je ferais une sub Sauvegarde()
et je l'appelerais toutes les 5 minutes par exemple,
ainsi que dans le form_unload.
Je metterais tout ça dans un simple fichier texte (csv),
il est inutile d'alourdir ce petit programme tout simple
en lui infligeant une liaison forte avec une application
tierce, alors qu'un fichier texte est si pratique.
'
'
Option Explicit
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA"
(ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Const NB_APP As Long = 2
Const TIMER_INTER As Long = 1000
Dim Applis(NB_APP) As String
Dim App_time(NB_APP) As Long
For i = 1 To NB_APP
lblApplis(i - 1) = Applis(i)
Next i
End Sub
Private Sub Timer1_Timer()
Dim ret As Long
Dim title As String
Dim i As Integer
title = String(256, " ")
ret = GetForegroundWindow
GetWindowText ret, title, 255
Label1.Caption = title
For i = 1 To NB_APP
If InStr(title, Applis(i)) > 0 Then
App_time(i) = App_time(i) + (TIMER_INTER / 1000)
Exit For
End If
Next i
For i = 1 To NB_APP
lblTpsAppli(i - 1) = App_time(i)
lblTpsAppli(i - 1).Refresh
Next i
End Sub
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
"Jean-Marc" a écrit dans le message de news:43273470$0$6575$
"rech logis" a écrit dans le message de news:BF4CED63.4F2% > Bonjour, > > Je souhaite connaitre le code avec lequel dès que je change
d'application
me > mentionne sous excel le temps passé avant la fermeture (Pourquoi cela me > direz vous je suis consultant et je souhaiterais connaitre le temps
passé
> sur chaque dossier (logiciel différents)
Allez, tant que j'y étais...
Tu as 99,9% du boulot fait. Reste à adapter aux logiciels que tu utilises, en mettant les bon noms dans Form_load. Ajuster NB_APP en fonction du nombre d'applis. Les labels sont la juste pour faire joli, on peut les enlever.
Il ne reste qu'à faire la sauvegarde dans un fichier csv ou Excel directment des valeurs des App_time(n).
Moi ce que je ferais, je ferais une sub Sauvegarde() et je l'appelerais toutes les 5 minutes par exemple, ainsi que dans le form_unload.
Je metterais tout ça dans un simple fichier texte (csv), il est inutile d'alourdir ce petit programme tout simple en lui infligeant une liaison forte avec une application tierce, alors qu'un fichier texte est si pratique.
' ' Option Explicit
Private Declare Function GetForegroundWindow Lib "user32" () As Long Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Const NB_APP As Long = 2 Const TIMER_INTER As Long = 1000
Dim Applis(NB_APP) As String Dim App_time(NB_APP) As Long
For i = 1 To NB_APP lblApplis(i - 1) = Applis(i) Next i
End Sub
Private Sub Timer1_Timer() Dim ret As Long Dim title As String Dim i As Integer
title = String(256, " ") ret = GetForegroundWindow GetWindowText ret, title, 255 Label1.Caption = title For i = 1 To NB_APP If InStr(title, Applis(i)) > 0 Then App_time(i) = App_time(i) + (TIMER_INTER / 1000) Exit For End If
Next i For i = 1 To NB_APP lblTpsAppli(i - 1) = App_time(i) lblTpsAppli(i - 1).Refresh Next i End Sub
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Gloops
Sinon avec certaines versions il suffit de regarder dans Fichier/Propriétés, onglet statistiques.
Sinon avec certaines versions il suffit de regarder dans
Fichier/Propriétés, onglet statistiques.