Le newbie
Messages postés200Date d'inscriptionmardi 17 octobre 2006StatutMembreDernière intervention24 mars 2012
-
18 oct. 2006 à 16:10
Le newbie
Messages postés200Date d'inscriptionmardi 17 octobre 2006StatutMembreDernière intervention24 mars 2012
-
23 oct. 2006 à 09:28
Salut,
J'ai un problème avec mon timer. Je veux qu'il scrutte un dossier toutes les 10 sec par exemple pour voir s'il y a quelque chose dedans.
J'ai un fichier .ini parametrer (pour l'interval et le chemin de mes fichiers)
Voici un exemple de ma procédure :
timer1.interval = <valeur du fichier.ini (10 000 pour suivre mon exemple>
timer1.start()
for each str in IO.Directiry.GetFiles(<chemin du .ini>, "*.*")
traitement
next
Mon problème est que quand je place des msgbox sur la valeur du temps restant, il me retourne 10 000
Comment lui dire de le faire dès que mon timer est à 0 ?
Le newbie
Messages postés200Date d'inscriptionmardi 17 octobre 2006StatutMembreDernière intervention24 mars 20122 23 oct. 2006 à 09:28
Salut,
Même avec ce que tu m'as ditr cela ne fonctionne pas mais par contre en faisant un thread, c'est passé alors je vais gardé cette solution. Merci pour tout.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 18 oct. 2006 à 16:53
interval est juste une proprieté du controle Timer (qui plus est au format integer et non pas time).
Elle indique juste au controle la période de déclenchement.
Elle ne reflete en aucun cas la durée restante avant déclenchement.
Il n'est pas possible, à ma connaissance de connaitre ce paramètre.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 18 oct. 2006 à 16:55
Dans les propriétés de ton Timer, tu met 10000 pour interval.
Ensuite tu fais un doubleclick sur ton timer, il va t'ouvrir la procedure TonTimer_Tick qui est l'évènement généré toutes les 10 secondes.
C'est dans cette procédure que tu met ton code à executer toutes les 10 secondes.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Le newbie
Messages postés200Date d'inscriptionmardi 17 octobre 2006StatutMembreDernière intervention24 mars 20122 18 oct. 2006 à 17:07
Ecoute pour faire au plus simple voilà ce que j'ai coder. Ca sera plus simple peut être pour toi car à l'heure actuelle, j'ai beau attendre 10 sec, 20 sec, ... Rien de plus si un fichier se rajoute dans mon répertoire Tempo.
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Me.Visible = False
Search()
End Sub
Private Sub Search()
' Variables locales
Dim strTempo As String
Dim strExe As String
Dim Proc As New Process
strExe = Ini.ReadString("Executer", "Exe")
'Pour chaque fichier présent dans le chemin du fichier .ini à la clé Tempo
For Each strTempo In IO.Directory.GetFiles(Ini.ReadString("Temporaire", "Temp", "*.*"))
' Execution du fichier
Proc.StartInfo.FileName = strTempo
Proc.Start()
'Copie du fichier dans le second répertoire et suppression dans le premier
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 18 oct. 2006 à 17:45
Première chose, bein que le code soit en commentaire, je suppose que ce n'est que temporaire.
A partir du moment ou tu fait un .File.Move, inutile de faire derrière un .File.Delete, le fichier source n'existe plus puisqu'il a été déplacé.
Ensuite, je ne sais pas à quoi correspond Ini.ReadString exactement, mais dans la ligne ci-dessous il n'y aurait pas un problème de paranthèses par hasard ?
--> For Each strTempo In IO.Directory.GetFiles(Ini.ReadString("Temporaire", "Temp", "*.*"))
c'est pas plutot
--> For Each strTempo In IO.Directory.GetFiles(Ini.ReadString("Temporaire", "Temp"), "*.*")
Autre point, tu as bien mis Timer1.interval = 10000, soit dans le code, soit directement dans les propriétés du controle.
Dans le code (form_load par exemple) tu met bien Timer1.Start quelque part.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Le newbie
Messages postés200Date d'inscriptionmardi 17 octobre 2006StatutMembreDernière intervention24 mars 20122 18 oct. 2006 à 18:06
Merci pour le .Move
ini.redString est une des procédure d'une classe pour lire un fichier ini et qui retourne un string.
Pour le pb de parenthèse je sais pas je vais tester.
Voila tout le code de toute ma form :
Imports System.IO
'________________________________________________________________________
' Prévoir de mettre le fichier dans le répertoire de démarrage du poste
'________________________________________________________________________
' Notes :
' Pb avec le timer (actions non répétées).
Public Class frmMain
Inherits System.Windows.Forms.Form
Private time As Single
Dim Ini As New INIReader("C:\SM vs Citrix.ini")
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Le newbie
Messages postés200Date d'inscriptionmardi 17 octobre 2006StatutMembreDernière intervention24 mars 20122 18 oct. 2006 à 18:31
Alors c'est vrai qu'il fait une erreur à ce niveau et que je l'avais laissé en commentaire (que je t'ai enlevé) car si tu regarde le premier bout de code que je t'ai envoyé, il y a les '. Mais pour le timer je sais pas ???
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 18 oct. 2006 à 19:20
Bon de retour. Voyons voir ce code.
La ligne de l'évènement du timer n'est pas complete, il manque l'abonnement au Handle de l'évènement
Ce qui veut dire que le timer ne saura pas quelle procédure appeler lors du déclenchement
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Tout le reste me semble correct.
Sauf qu'il manque l'icone pour la zone de notification et le problème du Proc.Start/IO.File.Move.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #