Agir sur le planificateur de tâches XP
Stagiaire WDF
Inscrit:
17/10/2004 15:10
Post(s): 27
Bonjour à tous,

Petite question je voudrais pouvoir inscrire des tâches depuis une application windev directement dans le planificateur de tâche de windows, afin de ne pas avoir à me soucier de la gestion des rappels de rendez vous dans mon cas.

je dois pouvoir verifier à chaque démmarrage de mon application windev si des taches (rendez-vous) on été crée et s'il on dejà été ajouté au plannificateur de xp et ceci afin d'éviter des doublons...

Quelqu'un peut il me dire comment proceder ? et si cela est possible, à moins que quelqu'un connaisse un moyen éfficace de rappeller un rendez vous qui aurra lui dans cinq ans...

merci d'avance


cyber152

Contribution le : 08/03/2005 18:20
_________________
A bientôt
Créer un fichier PDF de la contribution Imprimer


Re: Agir sur le planificateur de tâches XP
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
C'est rendu possible avec les WMI

Code à finir d'adapter du VB :
// Appel WMI de l'object Win32_ScheduledJob
Nom_Du_Serveur est une chaine = "127.0.0.1"
Tâche = GetObject("winmgmts:\\" & Nom_Du_Serveur & "\root\cimv2:Win32_ScheduledJob")
Tâche.Create "Calc.exe", "********214000.000000-000" ',[Repeter (booléen)],  [JourDelaSemaine ], [Jourdumois],[InteractWithDesktop (booléen)]), JobId
'0 x00000001 Lundi
'0 x00000002 Mardi
'0 x00000004 Mercredi
'0 x00000008 Jeudi
'0 x00000010 Vendredi
'0 x00000020 Samedi
'0 x00000040 Dimanche
'Exp pou Lundi+Mardi 1+2 etc..

Origine de la ressouce

Contribution le : 09/03/2005 09:07
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: Agir sur le planificateur de tâches XP
Stagiaire WDF
Inscrit:
17/10/2004 15:10
Post(s): 27
bonjour, et merci pour votre réponse cela m'a mis sur une piste et j'ai trouvé d'autres informations qui pourront peut être servir à quelqu'un d'autre plus qualifié que moi pour mettre en oeuvre cette tâche cela parle de class etc...

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_scheduledjob.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/create_method_in_class_win32_scheduledjob.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_tasks__dates_and_times.asp

déjà l'anglais c pas évident mais la, en plus mon niveau débutant en windev c'est trop


il n'y a vraiment pas assez d'exemples pour débutant en w-language sur le net ... c'est dommage

un script en vbs permet aussi la création d'une tâche :

 Dim lundi, mardi, mercredi, jeudi, vendredi, samedi, dimanche 
dimanche = "1" 
lundi = "2" 
mardi = "4" 
mercredi = "8" 
jeudi = "16" 
vendredi = "32" 
samedi = "64" 
strComputer = "." 
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set objNewJob = objWMIService.Get("Win32_ScheduledJob") 
errJobCreated = objNewJob.Create("Notepad.exe","********012500.000000-420",True, lundi OR mardi or mercredi or jeudi or vendredi, , False, JobID) 
If errJobCreated <> 0 Then 
Wscript.Echo "Erreur à la création de la tâche" 
Else 
Wscript.Echo "Tache créée" 
End If 


Bon il me reste plus qu'a trouver une solution plus facile à mettre en oeuvre.... je sent la galére

Contribution le : 10/03/2005 20:49
_________________
A bientôt
Créer un fichier PDF de la contribution Imprimer


Re: Agir sur le planificateur de tâches XP
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

WDForge met a votre disposition :
Un article expliquant la manipulation d'objet systeme tel que WMI est disponible ici

de meme qu'un projet exemple disponible ici

Contribution le : 11/03/2005 10:26
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Agir sur le planificateur de tâches XP
Stagiaire WDF
Inscrit:
17/10/2004 15:10
Post(s): 27
Bonjour,

merci de votre aide, je vais télécharger cette exemple et m'apuyer sur lui pour appliquer les modifications nécessaires à mon programme...

Contribution le : 12/03/2005 15:11
_________________
A bientôt
Créer un fichier PDF de la contribution Imprimer


Re: Agir sur le planificateur de tâches XP
Utilisateur WDF
Inscrit:
22/03/2005 14:40
De Lyon Rhône France
Post(s): 51
Bonjour,
avez-vous progressé dans vos recherches sur le planificateur de tâches? J'ai la même demande alors plutôt que de réinventer le fil à couper le beurre ...

--
Cordialement
Christophe Charron

Contribution le : 22/03/2005 14:46
Créer un fichier PDF de la contribution Imprimer


Re: Agir sur le planificateur de tâches XP
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Bon je vais regarder ca via le WMI et je vais mettre mes recherche en ligne prochainement.

Le plus dur étant de rédiger une petite doc.

Contribution le : 22/03/2005 16:14
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Agir sur le planificateur de tâches XP
Stagiaire WDF
Inscrit:
17/10/2004 15:10
Post(s): 27
Bonjour,

Pour Christophe Charron,

Désolé je n'ai pas encore eu le temps de tester l'exemple de ce forum,
mais DrCharly va faire un résumé de l'utilisation du WMI, qui devrais concerner le planificateur de tâches.
donc patience, si je parvient à adapter l'exemple je vous tiens au courant.

Contribution le : 23/03/2005 17:49
_________________
A bientôt
Créer un fichier PDF de la contribution Imprimer


Re: Agir sur le planificateur de tâches XP
Utilisateur WDF
Inscrit:
22/03/2005 14:40
De Lyon Rhône France
Post(s): 51
Bonjour,
ci-après le code, qui fonctionne chez moi (WXP Fam) en wd8.
--
global

vf_c_NameSpace est une chaine = "\root\cimv2"

LOCAL
vl_c_command est une chaîne
vl_c_StartTime est une chaîne
vl_b_RunRepeatedly est un booléen
vl_e_DaysOfWeek est un entier
vl_e_DaysOfMonth est un entier
vl_b_InteractWithDesktop est un booléen
//
Sablier(Vrai)
vl_c_command = "Calc.exe"
vl_c_StartTime = "********214000.000000-000"
vl_b_RunRepeatedly = Vrai
SI PAS vl_b_RunRepeatedly ALORS
vl_e_DaysOfWeek = 0
SINON
vl_e_DaysOfWeek = 1+2
FIN
vl_e_DaysOfMonth = 1+2+4+8
vl_b_InteractWithDesktop = Vrai
pf_Ajoute_Tache(vl_c_command,vl_c_StartTime,vl_b_RunRepeatedly,vl_e_DaysOfWeek,vl_e_DaysOfMonth,vl_b_InteractWithDesktop)
Sablier(Faux)

PROCEDURE pf_Ajoute_Tache(vv_c_Command,vv_c_StartTime,vv_b_RunRepeatedly,vv_e_DaysOfWeek,vv_e_DaysOfMonth,vv_b_InteractWithDesktop)

// Infos sur http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/create_method_in_class_win32_scheduledjob.asp
LOCAL
ol_oad_objLocator est un objet Automation dynamique
ol_oad_objService est un objet Automation dynamique
ol_oad_objInstance est un objet Automation dynamique

vl_v_errJobCreated est un Variant // retour info sur création de tâche
vl_v_JobId est un Variant // identifiant de la tâche (en retour)
//

ol_oad_objLocator = allouer un objet Automation "WbemScripting.SWbemLocator"
SI ol_oad_objLocator=Null ALORS
Erreur(ErreurInfo())
GOTO Desallocation
FIN
ol_oad_objService=ol_oad_objLocator>>ConnectServer(".", vf_c_NameSpace, Null, Null)
SI ol_oad_objService=Null ALORS
Erreur(ErreurInfo())
GOTO Desallocation
FIN
//ol_oad_objService>>Security_>>ImpersonationLevel =3
ol_oad_objInstance=ol_oad_objService>>Get("Win32_ScheduledJob")
SI ol_oad_objInstance=Null ALORS
Erreur(ErreurInfo())
GOTO Desallocation
FIN

vl_v_errJobCreated= ol_oad_objInstance>>Create(vv_c_Command ,vv_c_StartTime ,vv_b_RunRepeatedly, vv_e_DaysOfWeek,vv_e_DaysOfMonth ,vv_b_InteractWithDesktop, vl_v_JobId)
//Return code Description
//0 The request is accepted.
//1 The request is not supported.
//2 The user does not have the necessary access.
//8 Interactive Process.
//9 The directory path to the service executable file cannot be found.
//21 Invalid parameters have been passed to the service.
//22 The account that this service runs under is invalid or lacks the permissions to run the service.

SELON vl_v_errJobCreated
CAS 0 //The request is accepted.
CAS 1 //The request is not supported.
CAS 2 //The user does not have the necessary access.
CAS 8 //Interactive Process.
CAS 9 //The directory path to the service executable file cannot be found.
CAS 21 //Invalid parameters have been passed to the service.
CAS 22 //The account that this service runs under is invalid or lacks the permissions to run the service.
AUTRE CAS // Cas pas décrit par microsoft au 23 mars 2005
FIN

Desallocation:
// Libérer les camarades
SI ol_oad_objLocator<>Null ALORS libérer(ol_oad_objLocator)
SI ol_oad_objService<>Null ALORS libérer(ol_oad_objService)
SI ol_oad_objInstance<>Null ALORS libérer(ol_oad_objInstance)




Contribution le : 25/03/2005 13:45
Créer un fichier PDF de la contribution Imprimer


Re: Agir sur le planificateur de tâches XP
Stagiaire WDF
Inscrit:
17/10/2004 15:10
Post(s): 27
Bonsoir,

je confirme ce code fonctionne, il faut apporter quelques modifications dans le cas d'une création via un formulaire, mais cela devrais fonctionner, c'est une tres bonne base, merci pour votre coup de pouce.

(Il existe également un code dans la biblio msdn, pour le lister les tâches créée)

merci

Contribution le : 29/03/2005 00:01
_________________
A bientôt
Créer un fichier PDF de la contribution Imprimer


Re: Agir sur le planificateur de tâches XP
Utilisateur WDF
Inscrit:
22/03/2005 14:40
De Lyon Rhône France
Post(s): 51
Après moult essais, passer par wmi n'est pas concluant, pour ajouter une tâche.
Par contre, le programme schtasks, qui remplace le vieux programme AT fonctionne parfaitement.
Il est installé nativement sous XP Pro mais on peut le reprendre tel quel sous XP Fam et il existe une version particulières pour W2k.
Ci après le code qui fonctionne sous XP Pro,XP fam et W2k

// Tous les paramètres ne requierent pas d'être encadrés par des guillemets mais par sécurité on les encadre tous quand même

vl_c_Guillemets = """"
vl_c_NomLongExe = "c:\windows\system32\freecell.exe"
vl_c_NomcourtExe = fCheminCourt(vl_c_NomLongExe)

vl_c_NomProgrammeSoc = vl_c_Guillemets
vl_c_NomProgrammeSoc += vl_c_NomcourtExe
vl_c_NomProgrammeSoc += vl_c_Guillemets

vl_c_Heure_Format = vl_c_Guillemets + NumériqueVersChaine(vl_dh_DateHeure..Heure,"02d")+":"+NumériqueVersChaine(vl_dh_DateHeure..Minute,"02d")+":00" + vl_c_Guillemets
vl_c_Date_format = vl_c_Guillemets + NumériqueVersChaine(vl_dh_DateHeure..Jour,"02d")+"/"+NumériqueVersChaine(vl_dh_DateHeure..Mois,"02d")+"/"+NumériqueVersChaine(vl_dh_DateHeure..Année,"04d") + vl_c_Guillemets
vl_c_nomPArlant = vl_c_Guillemets + c_NomParlant+vl_c_Guillemets

vl_c_nomPArlant = Remplace(vl_c_nomPArlant,"<","")
vl_c_nomPArlant = Remplace(vl_c_nomPArlant,">","")
vl_c_nomPArlant = Remplace(vl_c_nomPArlant,":","")
vl_c_nomPArlant = Remplace(vl_c_nomPArlant,"/","")
vl_c_nomPArlant = Remplace(vl_c_nomPArlant,"\","")
vl_c_nomPArlant = Remplace(vl_c_nomPArlant,"|","")

vl_c_NomUtil = vl_c_Guillemets+ c_Nom_Utilisateur_Plan8 + vl_c_Guillemets
vl_c_pwd = vl_c_Guillemets + c_Nom_confimerpwd_Plan8 + vl_c_Guillemets

//schtasks /Create /RU "ET Maison" /RP Lepapeestmortvivelepape /SC ONCE /TN montest2 /TR "c:\windows\system32\freecell.exe" /ST 17:57:00 /SD 07/04/2005


vl_c_Chaine_schtasks = ChaîneConstruit("schtasks /Create /RU %5 /RP %6 /SC ONCE /TN %1 /TR %2 /ST %3 /SD %4 ",...
vl_c_nomPArlant,...
vl_c_NomProgrammeSoc,...
vl_c_Heure_Format,...
vl_c_Date_format,...
vl_c_NomUtil,...
vl_c_pwd)
DDELance(vl_c_Chaine_schtasks,DDEActif,Vrai)



Contribution le : 14/04/2005 09:15
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2