Visual C++, API Windows - Programmation
Marsh Posté le 23-04-2001 à 10:14:15
Une solution pourrait être d'avoir un programme principal qui joue le rôle de surveillant. Ce programme lancera et surveillera l'état du processus qui réalisera le traitement batch. Tu peux éventuellement mettre en place un échange de messages entre ces deux applications afin d'éviter de relancer le process sur un jeu de données invalides qui le feraient planter a nouveau.
En terme d'API, ton programme principal utiliserait la fonction CreateProcess pour lancer le process batch ainsi que les fonctions WaitForSingleObject, GetExitCodeProcess et GetLastError pour savoir comment le process s'est terminé et éventuellement traiter l'erreur.
[edit]--Message édité par Guru--[/edit]
Marsh Posté le 23-04-2001 à 10:23:23
Merci, mon appli est justement un lanceur d'applications (qui jouera donc aussi ce rôlé de surveilleur) mais j'ai en fait besoin d'explications plus en profondeur sur les possibilitées offertes par l'API Windows pour résoudre ce problème.
Marsh Posté le 23-04-2001 à 10:28:10
Je te conseille de regarder du coté de la librairy du MSDN pour trouver toutes les informations concernant l'API Win32. Tout particulièrement la section suivante : http://msdn.microsoft.com/library/ [...] d_3mgj.htm qui regroupe toutes les fonctions relatives à la gestion des process et threads.
Marsh Posté le 23-04-2001 à 10:32:16
...et bien sur, c'est en anglais ! Y parrait qu'il va falloir que j'm'y fasse, que toutes les docs sont en anglais...
Tant pis, j'prend mon courage à deux mains, mon dico...heu, bah j'le pose, vu qu'il y a plus de main pour lui (mon courage prend toute la place !) et j'y vais, merci Guru.
Mais ça ferme rien bien sur, j'attend encore tous vos conseils avisés !
Marsh Posté le 23-04-2001 à 11:16:42
c'est stagiaire tous des fénants zont qu'a bosser et mettre le nez dans les bouquins ça les changera un peu...
Je l'ai en face de moi le "el_gringo", fait que jouer à quake en attendant qu'on lui file l'appli toute faite....
C'est pas comme ça que vous apprendrez Monsieur.....
Marsh Posté le 23-04-2001 à 11:52:40
Gromethos à dis(je sais pas faire ça dans les règles de l'art) :
---------------------
c'est stagiaire tous des fénants zont qu'a bosser et mettre le nez dans les bouquins ça les changera un peu...
Je l'ai en face de moi le "el_gringo", fait que jouer à quake en attendant qu'on lui file l'appli toute faite....
C'est pas comme ça que vous apprendrez Monsieur.....
--------------------
Et MOI je lui dirait qu' il ferai bien d'apprendre à programmer dans des VRAIS languages au lieu de passer son temps à trainer sur les forums et à raconter de conneries (en plus il parrait qu'il est payé pendant ce temps !!).
Sur ce, je travail dur, encore et encore en attandant vos réponses qui pourront peut etre m'aider dans mon dur combat de stagiaire au milieu de collègues sans pitié (et qui font des fautes d'orthographe !)
Marsh Posté le 23-04-2001 à 13:40:23
tiens el_gringo a degné laisser quake quelques minutes pour se rencarder sur les messages du forum!!!
C'est bien des progrés....bientôt il ouvrirera un livre....
Marsh Posté le 23-04-2001 à 15:45:21
allez, aider moi quoi !
Personne n'est capable de me donner, ne serait ce qu'un petit coup de pouce !?
Marsh Posté le 24-04-2001 à 08:50:21
moi je suis stagiaire pareil,
et je dois faire une application de traitement des images en programmant en win 32, j'y connaissait rien, et c'est en utilisant la library MSDN que j'ai compris plein de trucs.
va sur http://msdn.microsoft.com/library/default.asp
puis dans platform SDK Doc
--> WIN 32
--> REFERENCE
et t'auras toutes les fonctions dont tu as besoin
voila tout.
Marsh Posté le 25-04-2001 à 09:34:38
Ben va voir l'api Win32 sur le MSDN ca te donnera toutes les billes pour faire ca. A moins que tu ne veuilles du code ?
Marsh Posté le 25-04-2001 à 09:48:11
du code...j'dirai pas non, c'est clair !
mais à défaut de code je tente une recherche, mais j'ai jammais géré de processus sous Win32 (je suis pas expert pour ce qui est de la programmation Win32)et je trouve ça affreusement compliqué de tout apprendre sur la bibliothèque (en anglais en plus !)
Marsh Posté le 25-04-2001 à 10:42:42
C'est dommage car c'est à peu près la seul façon de vraiment apprendre la programmation Win32.
Il y a un bouquin qui est la traduction de la MSDN pour les fonctions Win32 ("Programmation des API Win32" chez McMillan je crois) mais il me semble qu'il n'est plus dispo.
Bon courage
[edit]--Message édité par Pitounet--[/edit]
Marsh Posté le 26-04-2001 à 09:52:19
Aller soyons charitables qcq pistes qui pourraient t'aider:
Deja, pour detecter la fentre d'erreur, tu peux utiliser les fct du style EnumWindows (tu recupere des HWND puis les noms des fentres et tu compare avec une liste de char * des noms des fenetres d'erreur).
Pour cliquer sur le boutton ok c'est pareil, a partir du hwnd, tu envoye un message a la fenetre d'erreur qui simule le clic.
Tu mets tout ca dans un petit thread qui tourne en priorite basse et tu testes disons toutes le 10 secondes si une fenetre n'est pas apparue.
Tout ca ne sert que si t'as pas acces au code des applis que tu dois surveiller et donc tu ne peux ajouter des mecanismes de communication autres que les infames boites d'erreur de windob.
Enfin, je sais pas trop sur quel systeme tu travaille (si c'est w98, t'aura peut-etre des legers blemes si le scheduler du systeme s'arrete a cause du plantage de ton appli).
Marsh Posté le 26-04-2001 à 10:06:29
...je bosse sur WinNT, merci, ça va déja bien m'aider, si on pouvais mettre de remerciement comme quand un zikos enregistre un Cd, tu serai dessus !
Marsh Posté le 30-04-2001 à 13:28:42
Je te conseille aussi les thread plutot que les process.
_beginthread(updateObjThread,0,NULL); //ou updateObjThread est une fonction
Marsh Posté le 03-05-2001 à 16:14:48
merci Roswell, c toi l'meilleur, j'pense aussi, après analyse que c le mieux les treads
Marsh Posté le 23-04-2001 à 10:05:47
Salut, je fais un stage de développeur dans une boite d'info dans la quelle personne n'a le temps de s'occuper de moi, snif !
Alors bon, je viens cherche quelqu'âme charitable ici !
Je doit faire une application (tout seul, dur !) qui fait un traitement en batch (c à dire que ça doit tourner pendant la nuit.Donc, s'il y a une erreur lors du traitement des trucs à traiter par mon application et qu'une fenêtre d'erreur fatale est générée par windows, mon application doit détecter cette boite de dialogue d'erreur affichée et simuler un clique sur le bouton OK, pour que le traitement continue...
Si vous avez réussi à comprendre mes explications (un peu fouillues, j'en convient !) et que vous vous en sentez capable, merci de m'donner un p'tit coup de pouce...