il le fait pour le mardi aussi
par contre chose qu'il faisait pas avant
dès qu'il arrive sur un checkbox il fait la première ligne et ensuite il va sur ta fonction avant d'aller sur un autre checkbox mais il saute toujours la ligne du process start
il le fait pour le mardi aussi
par contre chose qu'il faisait pas avant
dès qu'il arrive sur un checkbox il fait la première ligne et ensuite il va sur ta fonction avant d'aller sur un autre checkbox mais il saute toujours la ligne du process start
j'ai laissé le mode pas à pas et j'ai vu que lorsqu'il arriver à l'heure il se met automatiquement sur la première ligne de l'évènement du timer_tick mais rien se passe et l'appli est bloqué
j'ai recréé un nouveau projet avec seulement le strict minimum pour voir si il y avait pas quelques choses qui empêche de fonctionnait mais rien ne se passe non plus
j'ai ça comme code sur mon projet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 Public Class Form1 Public Function GetWeekDayName(ByVal mydate As DateTime) As String Return System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.DayNames(CType(mydate.DayOfWeek, Integer)) End Function Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim mydate As DateTime = DateTime.Now 'mydate = DateTime.Now If cbmonday.Checked = True Then If GetWeekDayName(mydate) = "Monday" Then Process.Start("C:\Program Files\IDRE Informatique Backup\sauve.bat") End If End If If cbtuesday.Checked = True Then If GetWeekDayName(mydate) = "Tuesday" Then Process.Start("C:\Program Files\IDRE Informatique Backup\sauve.bat") End If End If If cbWednesday.Checked = True Then If GetWeekDayName(mydate) = "Wednesday" Then Process.Start("C:\memo.txt") End If End If If cbthursday.Checked = True Then If GetWeekDayName(mydate) = "thursday" Then Process.Start("C:\memo.txt") End If End If If cbfriday.Checked = True Then If GetWeekDayName(mydate) = "friday" Then Process.Start("C:\memo.txt") End If End If If cbsaturday.Checked = True Then If GetWeekDayName(mydate) = "saturday" Then Process.Start("C:\memo.txt") End If End If If cbsunday.Checked = True Then If GetWeekDayName(mydate) = "sunday" Then Process.Start("C:\memo.txt") End If End If If String.IsNullOrEmpty(tbheure.Text) Then If mydate.Hour = Int32.Parse(tbheure.Text) Then Process.Start("C:\memo.txt") End If End If If String.IsNullOrEmpty(tbminute.Text) Then If mydate.Minute = Int32.Parse(tbminute.Text) Then Process.Start("C:\memo.txt") End If End If End Sub Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Timer1.Interval = 60000 Timer1.Start() End Sub End Class
Vérifie ce que te retourne GetWeekDayName(mydate) mais je pense qu'il te manque une majuscule pour certains jours de la semaine.
Sinon, à première vue ton code à l'air d'être bon. Tu as fait une exécution au pas à pas ?
As-tu remplacer les process.Start par une MessageBox ?
bon j'ai fait un test en mettant une heure et jour pour aujourd'hui
le GetWeekDayName(mydate) m'affiche
oui je fais des executions pas à pas il n'y a pas de message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part Mydate # 10/29/2009 5:06:19 PM#
je vais mettre des majuscules
sinon oui je l'avais fait avec messagebox je vais le refaire avec le nouveau projet
ça, c'est le résultat de MyDate, normalement la méthode GetWeekDayName ne devrait te retourner que le nom du jour.
non ça m'affiche pas le jour
par contre ce code m'affiche bien l'heure que j'ai choisis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 If String.IsNullOrEmpty(tbheure.Text) Then If mydate.Hour = Int32.Parse(tbheure.Text) Then Process.Start("C:\memo.txt") End If End If
Bon bah au moins c'est bon pour les heures et les minutes.
Pour la méthode c'est bizarre, elle devrait retourner le jour...
Tente avec un myDate.DayOfWeek.ToString()
en mode pas à pas lorsque l'évènement se déclenche sur la ligne
je vois la valeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part If GetWeekDayName(MyDate) = "Thursday" Then
je suis désolé si c'est pas ça qu'il faut faire
C'est presque ça. Pendant le pas à pas, tu va surligner toute la fonction GetWeekDayName(MyDate), faire un clic droit dessus et choisir "espion express".
Là tu auras réellement le résultat de la fonction
voilà ce que j'obtiens dans la fenêtre execution
et dans la fenêtre espionUne exception de première chance de type 'System.InvalidCastException' s'est produite dans Microsoft.VisualBasic.dll
Une exception de première chance de type 'System.InvalidCastException' s'est produite dans Microsoft.VisualBasic.dll
Une exception de première chance de type 'System.InvalidCastException' s'est produite dans Microsoft.VisualBasic.dll
Une exception de première chance de type 'System.InvalidCastException' s'est produite dans Microsoft.VisualBasic.dll
Une exception de première chance de type 'System.InvalidCastException' s'est produite dans Microsoft.VisualBasic.dll
dans ma fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 If cbthursday.Checked = True Then If GetWeekDayName(mydate) = "Thursday" Then MessageBox.Show("bonjour") End If End If Expression attendue.
j'ai bien les jours de dimanche à samedi comme valeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public Function GetWeekDayName(ByVal mydate As DateTime) As String Return System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.DayNames(CType(mydate.DayOfWeek, Integer)) End Function
voilà j'ai trouvé une réponse
donc je résume l'idée est d'avoir 2 textbox (1 pour l'heure et l'autre pour les minutes) 7 checkbox ( 1 pour chaque jour de la semaine) et 1 timer pour pour ticker toute les minutes pour lancer un évènement ( dans mon cas c'est un process )
donc le but c'est que l'utilisateur choisit l'heure et aussi le ou les dates dont se process doit être lancé
dans le form_load
on met:
dans le timer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Timer1.Interval = 60000 Timer1.Start()
on met:
je te remercie laedit de m'avoir beaucoup aider aussi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim mydate As DateTime = DateTime.Now Dim MyDateDayName As DayOfWeek = mydate.DayOfWeek Dim Go As Boolean = False If tbheure.Text & ":" & tbminute.Text = mydate.ToShortTimeString() Then Select Case MyDateDayName Case DayOfWeek.Monday Go = cbmonday.Checked Case DayOfWeek.Tuesday Go = cbtuesday.Checked Case DayOfWeek.Wednesday Go = cbWednesday.Checked Case DayOfWeek.Thursday Go = cbthursday.Checked Case DayOfWeek.Friday Go = cbfriday.Checked Case DayOfWeek.Saturday Go = cbsaturday.Checked Case DayOfWeek.Sunday Go = cbsunday.Checked End Select End If If Go Then Process.Start("chemin du process à lancer") End Sub
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager