Bonjour,
Voici mon problème, je travaille sur une application qui peut-être amené à exécuter de longs traitements de façon aléatoires... le problème c'est que ces traitements s'éxécutent dans la thread principale et du coup plus aucun messages windows n'est traités durant ce temps et du coup Windows considère l'application comme plantée. Windows XP crée alors une fausse fenêtre permettant de minimiser/fermer l'application qui ne réponds plus. Le problème de cette fausse fenêtre c'est qu'elle peut passer devant des boites de dialogues modales qui apparaissent justement après ce long traitement. Du coup l'utilisateur a l'impression que l'application est planté alors qu'il s'agit juste d'un message passé derrière (il faut faire alt-tab pour que celui-ci repasse devant mais ça l'utilisateur l'ignore).
J'ai trouvé un moyen de contourner le problème avec l'appel de l'API DisableProcessWindowsGhosting dispo depuis Windows XP SP1, par contre pour WinXP sans SP1 ou Win2000 je n'ai pas trouvé d'équivalent, ce qui est plutôt très gênant, sous Windows 2000 le problème n'arrive que si on triture la fenêtre qui "ne répond pas" alors que sous XP cela est systématique...
Quelqu'un a une solution à proposer ?
Partager