Tache planifie Windows : URGENT

Signaler
Messages postés
10
Date d'inscription
jeudi 28 mars 2002
Statut
Membre
Dernière intervention
18 mai 2011
-
Messages postés
53
Date d'inscription
mardi 30 avril 2002
Statut
Membre
Dernière intervention
19 avril 2012
-
Bonjour,

Je recherche une API ou un moyen de m'interface avec le gestionnaire de taches planifie de Windows de maniere à depuis une application Visual Basic pouvoir créer et modifier voir supprimer des taches planifié au niveau de windows.
C urgentissime !

Merci d'avance mymic :sleepy)

7 réponses

Messages postés
360
Date d'inscription
vendredi 24 août 2001
Statut
Membre
Dernière intervention
9 juillet 2008
3
MOI AUSSI !!!!!!!!
Je suis TRES intéréssé par cela, j'en ai besoin de mon logiciel, Si t'a quoi que ce soit, merci de me faire suivre!!!

============
Site Web de JDPROG
Présentation de MP3 Index

http://jdprog.fr.st
0
Messages postés
11
Date d'inscription
dimanche 15 septembre 2002
Statut
Membre
Dernière intervention
27 octobre 2005

Desole pour le style de programation, c'est mon premier prog en vb, mais je pense qu'il est suffisamment commente pour comprendre la structure d'un fichier .job.

j'ai bien realise un tableau plus facilement comprehensible sur la structure des fichiers .job mais ne ne sais pas comment le transferer par l'intermediaire de ce site.

PS : le prog fonctionne en lecture (il ne m'a servi qu'a comprendre la structure) alors si quelqu'un peut me fournir les sources pour ecrire des . job, je suis preneur (le gros du boulot est fait) ;o).

Nestor

Option Explicit
Dim Nom_fichier As String
Dim donnee(1 To 1000, 1 To 1000) As Byte
Dim cpt As Integer
'CONVERSION D'UNE CHAINE HEXADECIMALE D'AU PLUS 4 CARACTERES EN VALEUR DECIMALE
'ET RENVOI DU RESULTAT DANS Hex16b2dec
'CA DOIT VOULOIR DIRE CA 16 bit
Function Hex16b2dec(nb_hex As String) As Integer
Dim i, j As Byte
Dim nbtmp As Integer
Dim liste_hex As Variant
Dim liste_dec As Variant
liste_hex = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F")
liste_dec = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
nbtmp = 0'Ecrit nb_hex sur 16 bit ( 7D2 07D2, C 000C)
Select Case Len(nb_hex)
Case 1
nb_hex = "000" + nb_hex
Case 2
nb_hex = "00" + nb_hex
Case 3
nb_hex = "0" + nb_hex
Case 4
nb_hex = nb_hex
End Select 'Convertit nb_hex en decimal ex: 07D2 0x16^3 + 7x16^2 + 13x16^1 + 2x16^0 2002
For i = 0 To 3
For j = 0 To 15
If Mid(nb_hex, i + 1, 1) = liste_hex(j) Then
nbtmp = nbtmp + liste_dec(j) * 16 ^ (3 - i)
Exit For
End If
Next j
Next i
Hex16b2dec = nbtmp
End Function
'C'était juste pour voir ce qu'il poivait y avoir dans un fichier ".job"
Private Sub Init_Table()
Dim result As Integer
result = 0
Open Nom_fichier For Binary As #1
Text1.Text = ""
Text2.Text = ""
For cpt = 1 To 500 Step 1
'Si quelqu'un peut me dire comment ajuster la valeur "500"
'à la taille réelle du fichier...
Get #1, (cpt + 0), donnee(cpt, cpt)
'lecture du fichier (Stocke le record cpt dans donnee(cpt,cpt))
'les 8 premiers bit de la valeur hexa stockée sur 16 bit
Get #1, (cpt + 1), donnee(cpt + 1, cpt + 1)
'lecture du fichier (Stocke le record cpt+1 dans donnee(cpt+1))
'les 8 derniers bit de la valeur hexa stockée sur 16 bit
Text1.Text = Text1.Text + Hex(Str(((donnee(cpt + 1, cpt + 1))))) + Hex(Str(((donnee(cpt, cpt))))) + "/" 'stocke la valeur hax dans text1
Text2.Text = Text2.Text + Chr(Val((Str(donnee(cpt, cpt))))) + "/"
Next
Close #1
Text1.Text = Text1.Text
Text2.Text = Text2.Text
End Sub
'PROMENADE SUR LE FICHIER POUR ANALYSER LES POSITIONS DES VALEURS HEXA INTERRESSANTES
Private Sub HScroll1_Change()
Text3.Text = HScroll1.Value
Text4.Text = Hex(Str(((donnee(HScroll1.Value + 1, HScroll1.Value + 1))))) + Hex(Str(((donnee(HScroll1.Value, HScroll1.Value)))))
Text5.Text = Hex16b2dec(Text4.Text)
If Val(Text5.Text) < 255 Then
Text6.Text = Chr(Val(Text5.Text))
Else
End If
End Sub
Private Sub Command1_Click()
CommonDialog1.InitDir = "c:\windows\tasks"
CommonDialog1.ShowOpen
Nom_fichier = CommonDialog1.FileName
Label1.Caption = Nom_fichier
Init_Table
Lire_donnee_Job
End Sub
'EXTRACTION DE LA STRUCTURE DU FICHIER JOB
Private Sub Lire_donnee_Job()
Dim i As Integer
Dim task_Nom_fichier, task_Dossier As String
Dim task_Annee As Integer
Dim task_Mois, task_Jour, task_Heure, task_Minute, task_Periode As Byte
'Il semble que le nom du prog a lancer debute en position 73
'et finisse à la prochaine position de valeur 00h
'entre 1 et 73 c'est ???
'RECHERCHE DU NOM DU PROGRAMME LANCE PAR TASK
i = 73
task_Nom_fichier = ""
While donnee(i, i) <> 0
task_Nom_fichier = task_Nom_fichier + Chr(Val((Str(donnee(i, i)))))
i = i + 2
Wend
Label2.Caption = "Programme : " + task_Nom_fichier + " Début : 73 - Fin : " + Str(i - 2)
'Il semble que le dossier du prog a lancer debute
'8 positions apres le 00h cité ci-dessus
'et finisse à la prochaine position de valeur 00h
'RECHERCHE DU DOSSIER DU PROGRAMME LANCE PAR TASK
i = i + 8 - 2
While donnee(i, i) <> 0
task_Dossier = task_Dossier + Chr(Val((Str(donnee(i, i)))))
i = i + 2
Wend
Label3.Caption = "Dossier : " + task_Dossier + " Début : ?? - Fin : " + Str(i - 2)
'Il semble que l'annee debute
'26 positions apres la position du Dossier cité ci-dessus
'et soit stocké sur 2 position
'RECHERCHE DE ANNEE
i = i + 26 - 2
task_Annee = Hex16b2dec(Hex(Str(((donnee(i + 1, i + 1))))) + Hex(Str(((donnee(i, i))))))
Label4.Caption = "Année : " + Str(task_Annee) + " - Début : " + Str(i - 1) + " - Fin : " + Str(i)
' MsgBox ("Fin du dossier en position : " + Str(i) + " Annee = " + Str(task_Annee))
'Il semble que le mois debute
'2 positions apres la position Annee cité ci-dessus
'et soit stocké sur 2 position
'RECHERCHE DE MOIS
i = i + 2
task_Mois = Hex16b2dec(Hex(Str(((donnee(i + 1, i + 1))))) + Hex(Str(((donnee(i, i))))))
Label5.Caption = "Mois : " + Str(task_Mois) + " - Début : " + Str(i - 1) + " - Fin : " + Str(i)
'Il semble que le jour debute
'2 positions apres la position Mois cité ci-dessus
'et soit stocké sur 2 position
'RECHERCHE DE JOUR
i = i + 2
task_Jour = Hex16b2dec(Hex(Str(((donnee(i + 1, i + 1))))) + Hex(Str(((donnee(i, i))))))
Label6.Caption = "Jour : " + Str(task_Jour) + " - Début : " + Str(i - 1) + " - Fin : " + Str(i)
'Il semble que l'heure debute
'8 positions apres la position Jour cité ci-dessus
'et soit stocké sur 2 position
'RECHERCHE DE HEURE
i = i + 8
task_Heure = Hex16b2dec(Hex(Str(((donnee(i + 1, i + 1))))) + Hex(Str(((donnee(i, i))))))
Label7.Caption = "Heure : " + Str(task_Heure) + " - Début : " + Str(i - 1) + " - Fin : " + Str(i)
'Il semble que les Minutes debutent
'2 positions apres la position Heure cité ci-dessus
'et soit stocké sur 2 position
'RECHERCHE DE MINUTE
i = i + 2
task_Minute = Hex16b2dec(Hex(Str(((donnee(i + 1, i + 1))))) + Hex(Str(((donnee(i, i))))))
Label8.Caption = "Minue : " + Str(task_Minute) + " - Début : " + Str(i - 1) + " - Fin : " + Str(i)

i = i + 14
task_Minute = Hex16b2dec(Hex(Str(((donnee(i + 1, i + 1))))) + Hex(Str(((donnee(i, i))))))
Select Case task_Minute
Case 0
Label9.Caption = "Périodicité : 1 seule fois :" + Str(task_Minute) + " - Début : " + Str(i - 1) + " - Fin : " + Str(i)
Case 1
Label9.Caption = "Périodicité : Tous les jours :" + Str(task_Minute) + " - Début : " + Str(i - 1) + " - Fin : " + Str(i)
Case 2
Label9.Caption = "Périodicité : Toutes les semaines :" + Str(task_Minute) + " - Début : " + Str(i - 1) + " - Fin : " + Str(i)
Case 3
Label9.Caption = "Périodicité : Tous les mois :" + Str(task_Minute) + " - Début : " + Str(i - 1) + " - Fin : " + Str(i)
Case 4
Label9.Caption = "Périodicité : j'sais pô ! :" + Str(task_Minute) + " - Début : " + Str(i - 1) + " - Fin : " + Str(i)
Case 5
Label9.Caption = "Périodicité : Option inactif ? :" + Str(task_Minute) + " - Début : " + Str(i - 1) + " - Fin : " + Str(i)
Case 6
Label9.Caption = "Périodicité : Option au démarrage :" + Str(task_Minute) + " - Début : " + Str(i - 1) + " - Fin : " + Str(i)
Case 7
Label9.Caption = "Périodicité : Option à l'ouverture d'une session :" + Str(task_Minute) + " - Début : " + Str(i - 1) + " - Fin : " + Str(i)
End Select

'Il semble que la périodicité debute
'12 positions apres la position Minute cité ci-dessus
'00h = Une seule fois
'01h = Tous les jours mais il y a d'autre parametres
'02h = Toutes les semaines mais il y a d'autre parametres
'03h = ? :o) ce s'rait ti pô c'que j'pense ?
'04h = ? :o) ce s'rait ti pô c'que j'pense ?
'05h = Option inactif du gestionnaire de tache ?
'06h = Option Au démarrage du gestionnaire de tache
'07h = Option A l'ouverture d'une session du gestionnaire de tache
'...
'...
'
End Sub
0
Messages postés
17
Date d'inscription
jeudi 1 novembre 2001
Statut
Membre
Dernière intervention
23 avril 2003

c'est une usine à gaz ton truc
heureusement que la commande AT existe !!
moi je fais comme ça pour créer une tâche :
Shell "AT 13:15 /INTERACTIVE /EVERY:l,ma,me,j,v,s,d """ & App.Path & "" & App.EXEName & ".exe"" auto"
0
Messages postés
11
Date d'inscription
dimanche 15 septembre 2002
Statut
Membre
Dernière intervention
27 octobre 2005

Nestor

en plus ca foire :o(
merci pour l'info, j'va essayer.
0
Messages postés
11
Date d'inscription
dimanche 15 septembre 2002
Statut
Membre
Dernière intervention
27 octobre 2005

Peux tu m'envoyer un prog complet ave cla commande AT ?
Moi j'obtient une erreur 53 !

merci

nestor

c'est une usine à gaz ton truc
heureusement que la commande AT existe !!
moi je fais comme ça pour créer une tâche :
Shell "AT 13:15 /INTERACTIVE /EVERY:l,ma,me,j,v,s,d """ & App.Path & "" & App.EXEName & ".exe"" auto"
0
Messages postés
17
Date d'inscription
jeudi 1 novembre 2001
Statut
Membre
Dernière intervention
23 avril 2003

J'ai fais un zip mais j'ai pas pu le poster sur ce site, je te l'envoi par mail
dedant t'a deux methode de crétion de ta^ches : avec la commande AT et avec un composant activeX
0
Messages postés
53
Date d'inscription
mardi 30 avril 2002
Statut
Membre
Dernière intervention
19 avril 2012
1
j'ai mis une source qui ameliore le traitement du decoupage des informations des taches, et qui permet d ajouter une tache planifiée .

http://www.vbfrance.com/code.aspx?ID=21497
0