Pour une star du C++ ... - Programmation
Marsh Posté le 21-05-2001 à 10:22:49
C'est tout con, tu utilises SendMessage pour envoyer un evenement à la fenetre principale du process.
Et si SendMessage bloque ton application c'est que le process est bloqué .
Donc bien sur il faut mettre SendMessage dans un thread avec un timer pour résoudre ce problème.
Marsh Posté le 21-05-2001 à 10:39:51
seblamb a écrit a écrit : C'est tout con, tu utilises SendMessage pour envoyer un evenement à la fenetre principale du process. Et si SendMessage bloque ton application c'est que le process est bloqué ![]() Donc bien sur il faut mettre SendMessage dans un thread avec un timer pour résoudre ce problème. |
oula là, mais g jammais utilisé tout ça moi, ça fait peur...
Marsh Posté le 21-05-2001 à 11:16:05
en fait le problème, c que le programme que j'appel par mon CreateProcess est un executable; n'importe lequel, comment dans ce cas envoyer un message à sa fenête principale !?
comment avoir un handler vers celle-ci !?
Marsh Posté le 21-05-2001 à 12:32:06
Pfff, faut que je fasse tout !!!
Et bien une solution est d'utiliser "EnumWindows" et "GetWindowThreadProcessId" pour trouver une fenetre appartenant à l'application.
Marsh Posté le 21-05-2001 à 13:53:18
seblamb a écrit a écrit : Pfff, faut que je fasse tout !!! Et bien une solution est d'utiliser "EnumWindows" et "GetWindowThreadProcessId" pour trouver une fenetre appartenant à l'application. |
Ho, ça va, toi tu connais, c pas dur pour toi, ça te prend 2 minutes alors que ça m'aurait pris des heures...
Donc, merci beaucoup, et j'vais tenter de me démerder, ms c pas simple cette gestion des fenêtres et des threads quand on l'a jammais fait (ça fait seulement 1 mois que je fait du C++)
Marsh Posté le 21-05-2001 à 09:35:24
Alors voila, je fait ce qu'on appel un lanceur d'applications (entant que stagiaire, d'ou mon niveau pas forcément extraordinaire...).
Ce lanceur, comme son nom l'indique, lance des executables, par un createProcess.
Si qqn à déja bosser avec ça, j'aimerai savoir s'il est possible, pdt que ce process tourne, par une fonction de l'API, de savoir si tout se passe bien pour lui, ou s'il est bloqué.
En gros, je voudrai l'interroger (comme quand, avec Ctrl+Alt+Suppr, sous Win98, il met "pas de réponse" à côté du nom d'un programme qui bloque le système.
Et ouais, c surement chaud, c pour ça que si qqn à déja fait des trucs du genre ça serai sympa de m'aider un peu... Pendant ce temps, je cherche