Citation Envoyé par SilkyRoad Voir le message
bonsoir

Tu peux tester cette procédure pour créer une tache:


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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
Option Explicit
 
'----------------------------------------------------
'Source:
'http://www.tek-tips.com/viewthread.cfm?qid=794484
'
'----------------------------------------------------
 
Private Declare Function NetScheduleJobAdd Lib "netapi32.dll" _
    (ByVal Servername As String, Buffer As Any, JobID As Long) As Long
 
 
Private Type AT_INFO
    JobTime As Long
    DaysOfMonth As Long
    DaysOfWeek As Byte
    Flags As Byte
    Command As String
End Type
 
 
Private Enum JobAdd
    JOB_RUN_PERIODICALLY = 1&
    JOB_ADD_CURRENT_DATE = 8&
    JOB_NONINTERACTIVE = 16&
End Enum
 
 
Private Enum sjWeekdays
    Monday = 1
    Tuesday = 2
    Wednesday = 4
    Thursday = 8
    Friday = 16
    Saturday = 32
    Sunday = 64
End Enum
 
 
Private Enum sjDays
    d1 = 1
    d2 = 2
    d3 = 4
    d4 = 8
    d5 = 16
    d6 = 32
    d7 = 64
    d8 = 128
    d9 = 256
    d10 = 512
    d11 = 1024
    d12 = 2048
    d13 = 4096
    d14 = 8192
    d15 = 16384
    d16 = 32768
    d17 = 65536
    d18 = 131072
    d19 = 262144
    d20 = 524288
    d21 = 1048576
    d22 = 2097152
    d23 = 4194304
    d24 = 8388608
    d25 = 16777216
    d26 = 33554432
    d27 = 67108864
    d28 = 134217728
    d29 = 268435456
    d30 = 536870912
    d31 = 1073741824
End Enum
 
 
 
Sub Test()
    '(ouverture du bloc notes)
    vbScheduleJob "notepad.exe", DateAdd("n", 1, Now), JOB_RUN_PERIODICALLY, Wednesday, d4
End Sub
 
 
Private Function vbScheduleJob(strCommand As String, sjTime As Date, _
    AddFlags As JobAdd, Optional DayOfWeek As sjWeekdays = 0, _
    Optional DayOfMonth As sjDays = 0, Optional PCName As String = vbNullString) As Long
 
    Dim myInfo As AT_INFO
    Dim JobID As Long
 
    With myInfo
        .Command = StrConv(strCommand, vbUnicode)
        .Flags = AddFlags
        .JobTime = DateDiff("s", "00:00:00", Format(sjTime, "hh:mm:ss")) * 1000
        .DaysOfWeek = DayOfWeek
        .DaysOfMonth = DayOfMonth
    End With
 
    NetScheduleJobAdd PCName, myInfo, JobID
 
    vbScheduleJob = JobID
End Function


bonne soirée
michel