aldrac
Messages postés44Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention22 janvier 2011
-
5 août 2008 à 19:42
aldrac
Messages postés44Date d'inscriptionjeudi 5 janvier 2006StatutMembreDernière intervention22 janvier 2011
-
6 août 2008 à 17:16
Bonjour a tous, j'ai crée une petite application qui se lance au démarrage de
windows,et je chercher un moyen de calculer le temps total d'utilisation,je m'explique:
dés que le pc fonctionne mon programme compte les secondes, minutes et heures, les stocks
dans des fichiers pour pouvoir au ré allumage du pc retrouver les valeurs (heures,min,sec)
Ainsi mon chrono reprend ou il s'etai arrêter!
Je sais cela doit vous sembler un peu poussif!! Mais je débute et je fais ça en amateur,j' ai chercher
le moyen pour que mon prog détecte lorsque le pc va s'éteindre et ainsi écrire juste a ce moment la,
dans un fichier,mais j'ai pas trouver!!
Voici l'extrais de mon code qui concerne cette fonction,
dite moi ce que vous en penser,n'hésiter pas!!
Imports System.IO 'pour pouvoir lire et écrire de fichiers
Public Class Form1
Dim h As Integer 'les heures
Dim m As Integer 'les minutes
Dim s As Integer 'les secondes
Dim t As String 'affichage du temps
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'on regarde si on peut reprendre les données d'un précedent timer
If File.Exists("c:\a\heures.txt") Then
Call reprise()
End If
'le label affiche les variables (précedente ou non)
Label1.Text = "" & h & " : " & m & " : " & s & ""
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'a chaque tick on incrémente s de 1
s = s + 1
'on defini les unitées de temps: If s 60 Then : s 0
m = m + 1
End If
If m 60 Then : m 0
h = h + 1
End If
'on donne a t les valeurs des variables h,m,s
t = "" & h & " : " & m & " : " & s & ""
Label1.Text = (t) 'affiche t
' a chaque tick on écrit les valeurs de h,m,s dans des fichiers .txt afin de les lires
'lors de la reprise
Dim SW1 As StreamWriter = File.AppendText("c:\a\heures.txt") ' crée ou si existe ajoute
SW1.WriteLine(h)
SW1.Close()
Dim SW2 As StreamWriter = File.AppendText("c:\a\minutes.txt") ' crée ou si existe ajoute
SW2.WriteLine(m)
SW2.Close()
Dim SW3 As StreamWriter = File.AppendText("c:\a\secondes.txt") ' crée ou si existe ajoute
SW3.WriteLine(s)
SW3.Close()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Interval = 1000 'timer de 1 seconde
Timer1.Start()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
End
End Sub
Private Sub reprise()
'on transforme le fichier heures.txt en tableau
Dim th() As String = File.ReadAllLines("c:\a\heures.txt")
Dim k As String
Dim p As Integer
'on cherche la derniere ligne du tableau
k = th.Length - 1 ' -1 car les elements du tableau commence a l'indice 0,1,2...donc i serait or tableau
p = CType((k), Integer) ' f est la variable String, Integer est le type à obtenir
h = th.GetValue(p) 'h prend la valeur de la derniere ligne du tableau
'on transforme le fichier minutes.txt en tableau
Dim tm() As String = File.ReadAllLines("c:\a\minutes.txt")
Dim l As String
Dim q As Integer
'on cherche la derniere ligne du tableau
l = tm.Length - 1 ' -1 car les elements du tableau commence a l'indice 0,1,2...donc i serait or tableau
q = CType((l), Integer) ' f est la variable String, Integer est le type à obtenir
m = tm.GetValue(q) 'm prend la valeur de la derniere ligne du tableau
'on transforme le fichier secondes.txt en tableau
Dim ts() As String = File.ReadAllLines("c:\a\secondes.txt")
Dim n As String
Dim r As Integer
'on cherche la derniere ligne du tableau
n = ts.Length - 1 ' -1 car les elements du tableau commence a l'indice 0,1,2...donc i serait or tableau
r = CType((n), Integer) ' f est la variable String, Integer est le type à obtenir
s = ts.GetValue(r) 's prend la valeur de la derniere ligne du tableau
'apres avoir pris les précedentes valeures de h,m,s on efface les fichiers pour reécrir dans des neufs
Call efface()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Call reprise()
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Timer1.Stop()
End Sub
Private Sub efface()
'on efface les fichiers pour ne pas surcharger
File.Delete("c:\a\heures.txt")
File.Delete("c:\a\minutes.txt")
File.Delete("c:\a\secondes.txt")
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 6 août 2008 à 00:57
Salut,
Il y a plus simple
1. Au lieu de créer un fichier, on peut utiliser un paramètre de l'application :
- Menu Projet > Propriétés
- Onglet Paramètres, tu ajoute un paramètre qui s'appel "ElapsedTime" de type Integer, porté utilisateur et de valeur 0
2. Au démarrage de l'application, on mémorise l'heure :
Private StartTime As Date
Private Sub Form1_Load(...) Handles MyBase.Load
StartTime = Now
End Sub
3. A la fermeture de l'application, on sauvegarde le temps écoulé :
Private Sub Form1_FormClosing(...) Handles Me.FormClosing
' Temps écoulé durant la session :
Dim Span As TimeSpan = Now - StartTime
' Ajouter au temps total :
My.Settings.ElapsedTime += Span.Ticks
End Sub
4. Si tu veux connaitre/afficher le temps écoulé total :
' Temps total enregistré :
Dim TotalTime As New TimeSpan(My.Settings.ElapsedTime)
' On ajoute le temps écoulé durant la session
TotalTime.Add(Now - StartTime)
Comme tu peux le voir, on ne travail pas avec des heures, minutes et secondes, mais avec des ticks. Le tick est l'unité de base du temps, utilisé avec un TimeSpan il permet d'en extraire les heures, minutes et secondes ainsi que d'être aditionné/soustrait à une date.
gillardg
Messages postés3275Date d'inscriptionjeudi 3 avril 2008StatutMembreDernière intervention14 septembre 20142 6 août 2008 à 10:49
tu n'as pas besoin de savoir quand windows vas se fermer ,
windows envoie un message aux applications qui tournent et normalement ton prog aura le temps de sauver ses données