Erreur -> fin du prog par windows

Utilisateur anonyme - 4 mai 2005 à 19:47
 Utilisateur anonyme - 5 mai 2005 à 11:07
bonsoir, j'ai un probleme que je n'arrive pas a resoudre paarrce que je ne vois pas ce qui ne va pas !!!

voici l'enoncé :

2 programmes en vb : prog1 et prog2 (prog2 compilé en exe)
les deux programmes communiquent avec les api send_message
jusque la ca marche.

prog1 envoi un message a prog2, tout se passe bien
prog2 lui repond, tout va bien toujours...

la ou ca cloche, c'est dans le code de prog2
apres avoir envoyer le message, il doit se quitter, mais au lieu de le faire silencieusement, il me balance une belle fenetre windows qui me dit que le prog doit etre fermé, etc, etc on connait la chanson.

au secours !!!


Dark Wazza
http://perso.wanadoo.fr/toclav/

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 mai 2005 à 20:21
Salut
Ca manque d'indice ...
Et tu fais comment pour demander à prog2 de se fermer ?
Un 'End' bien placé fonctionne.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
Utilisateur anonyme
4 mai 2005 à 20:27
J'utilise un end bien placé pourtant.

Avec un unload form ca marche pas non plus.
Peut etre est-ce du a un conflit avec l'api send_message, car le end est placé juste apres.
En revanche, si je quitte prog2 avec une autre fonction (genre un commandbox qui contient un end) ca marche.


Dark Wazza
http://perso.wanadoo.fr/toclav/
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 mai 2005 à 01:31
Ah Ok.
Il faut toujours penser à laisser le temps au système d'exécuter les ordres qui vont vers d'autres objets.
Donc, si tu fais un SendMessage et que tu mets le End aussitôt derrière, l'OS n'a pas eu le temps de faire le SendMessage. Puisque tu lui demandes de fermer l'instance qui a créé l'action qui est en mémoire, l'OS te signale qu'il ne peut pas exécuter cet ordre s'il n'y a plus de référence à l'origine (comme si tu téléphonais à qqun et tu vas faire un tour ailleurs)

Pour arranger ça, suffit de mettre un DoEvents avant le End, ça devrait suffire à résoudre ce blem.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
Utilisateur anonyme
5 mai 2005 à 11:07
non, ca ne marche toujours pas avec le DoEvents.
en attendant, j'ai bidouiller un Timer qui permet d'executer le End 1s plus tard et la ca marche...

Faute de mieux...


Dark Wazza
http://perso.wanadoo.fr/toclav/
0
Rejoignez-nous