| superposition des exécutables | |
|
|
|
Auteur | Message |
---|
ambroise
Nombre de messages : 264 Localisation : Haute-Savoie Date d'inscription : 29/04/2012
| Sujet: superposition des exécutables Mar 5 Juin 2012 - 21:27 | |
| Bonsoir,
Par un execute dans l'exécutable 1 je lance un exécutable 2 qui a la mauvaise idée de s'afficher sous le programme1. Du coup on attend jusqu'à la saint glin-glin qu'il s'affiche et on ne le découvre qu'à la fermeture du programme si on est novice dans l'utilisation du programme, ou en déplaçant la fenêtre du programme 1 si on en connaît le caractère taquin ... C'est pas le top !
Y a-t-il une astuce pour que le programme appelé se place au-dessus du programme appelant ?
Merci. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 21:34 | |
| Il y a l'instruction TO_FOREGROUND n qui permet de mettre la Form 'n' en premier plan (avec son corollaire TO_BACKGROUND). Donc à mettre au début du programme appelé: - Code:
-
TO_FOREGROUND 0 C'est toujours un problème quand quelque chose s'affiche derrière la fenêtre principale, donc invisible, par exemple une erreur qui attend d'être acquittée, et on attend sans savoir ce qui se passe... Dans le cas que tu cites on peut aussi décaler le positionnement des fenêtres des deux programmes, de façon qu'elles soient visibles simultanément, même partiellement. | |
|
| |
ambroise
Nombre de messages : 264 Localisation : Haute-Savoie Date d'inscription : 29/04/2012
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 21:48 | |
| TO_FOREGROUND 0 ne met pas un exécutable en avant par rapport à un autre. Je pense que cette fonction est réservée aux form. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 21:52 | |
| ? La fenêtre d'exécution de ton exécutable appelé est bien le Form 0 de cet exécutable, en général ? Ce n'est pas l'exécutable lui-même qui se met en avant-plan, mais bien sa fenêtre d'exécution, non ? l'exécutable lui-même ce n'est que l'outil qui est dans le mémoire système. | |
|
| |
ambroise
Nombre de messages : 264 Localisation : Haute-Savoie Date d'inscription : 29/04/2012
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 21:58 | |
| Peut-être mais l'exécutable 2 ne s'affiche pas au-dessus de l'exécutable 1, malgré TO_FOREGROUND. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 22:00 | |
| Bizarre, j'ai fait l'essai avec deux petits programmes et ça marche chez moi, l'appelé se met bien par-dessus l'appelant Question idiote, mais tu as bien recompilé le prog2 avec le to_foreground ? | |
|
| |
ambroise
Nombre de messages : 264 Localisation : Haute-Savoie Date d'inscription : 29/04/2012
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 22:09 | |
| Oui. Je recompile à l'instant encore une fois par sécurité mais le programme 2 reste en dessous. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 22:15 | |
| Programme appelant: - Code:
-
PRINT "Programme 1" MESSAGE "Exécuter Programme 2" EXECUTE_WAIT "Prog2.exe" MESSAGE "Fin" TERMINATE Programme appelé: - Code:
-
TOP 0,50: LEFT 0,50: TO_FOREGROUND 0 PRINT "Programme 2" MESSAGE "Retour au Programme 1" TERMINATE je compile le second en Prog2.exe, et ça marche, il se met bien dessus. Bon, c'est un peu simpliste... Tiens, je remarque que si j'enlève le TO_FOREGROUND il se met quand même devant... ce qui est normal finalement, c'est le dernier arrivé qui se met devant, alors je ne comprends pas ce qui se passe chez toi.
Dernière édition par JL35 le Mar 5 Juin 2012 - 22:27, édité 1 fois | |
|
| |
ambroise
Nombre de messages : 264 Localisation : Haute-Savoie Date d'inscription : 29/04/2012
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 22:24 | |
| Régulièrement quand j'exécute le prog 2 à partir de execute "prog2.exe" codé dans prog1, j'obtiens la fenêtre "cannot open file c:\...\prog2.exe" qui elle se met bien devant. Je la ferme en cliquant sur le bouton "ok" , et prog2 est derrière prog1. Cela explique-t-il cela ? | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 22:30 | |
| Ben, je sais pas trop, mais si au départ il y a déjà une anomalie de fonctionnement ce n'est pas très sain.
Dans ton execute "prog2.exe" est-ce que tu mets le chemin d'accès complet de prog2.exe (C:\...\prog2.exe) ? Perso c'est ce que je fais, comme ça quel que soit l'endroit où on se trouve le programme est trouvé, sinon si tu n'es pas dans le bon répertoire... il ne trouve pas.
Autre chose: est-ce que tu fais Execute, ou bien Execute_Wait ? Dans le 1er cas le programme appelant se contente de lancer prog2, puis reprend la main immédiatement, donc redevient actif et du coup doit se remettre au premier plan ! dans on exemple je faisais execute_wait, c'est à dire que j'attends la fin de l'exécution complète de prog2 avant de reprendre la main dans l'appelant. C'est quand même le cas général, l'appelant attend la fin de l'exécution de l'appelé.
Dernière édition par JL35 le Mar 5 Juin 2012 - 22:37, édité 1 fois | |
|
| |
ambroise
Nombre de messages : 264 Localisation : Haute-Savoie Date d'inscription : 29/04/2012
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 22:34 | |
| Oui, bien sûr. Peut-être que le EXECUTE_WAIT réagit différemment du EXECUTE. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 22:38 | |
| On s'est croisés, c'est ce que j'étais en train de dire ci-dessus ! Tu ne peux pas mettre en sommeil l'appelant (execute_wait) pendant tout le temps d'exécution de l'appelé ? en général il n'y en a qu'un d'actif à la fois...
Dernière édition par JL35 le Mar 5 Juin 2012 - 22:40, édité 1 fois | |
|
| |
ambroise
Nombre de messages : 264 Localisation : Haute-Savoie Date d'inscription : 29/04/2012
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 22:39 | |
| ben non, c'est pareil... C'est dingue ça ! | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 22:41 | |
| Alors là, ça me dépasse ! Si quelqu'un d'autre a une idée...
Dernière édition par JL35 le Mar 5 Juin 2012 - 22:43, édité 1 fois | |
|
| |
ambroise
Nombre de messages : 264 Localisation : Haute-Savoie Date d'inscription : 29/04/2012
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 22:42 | |
| Allons nous reposer... demain, il fera jour !
Merci à toi... et bonne nuit ! | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 22:43 | |
| Bonne nuit à toi également, et désolé... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 22:55 | |
| Bizarre, ce problème. Je fais ceci: - Code:
-
' prog1.bas caption 0,"prog1" execute_wait "prog2.exe" end
et - Code:
-
' prog2.bas top 0,100 : left 0,100 caption 0,"prog2" end
Je génère, dans n'importe quel répertoire, les deux exécutables prog1.exe et prog2.exe. Je double-clique sur prog1.exe, et prog2 apparaît PAR-DESSUS prog1 ! Bien sûr, si je clique n'importe où dans la fenêtre de prog1, celle-ci se remet par-dessus. Dans l'absolu, il y a une solution radicale, par une de mes DLL disponible sur mon site. Si ça t'intéresse, je t'en donnerai plus d'informations, mais tout est sur mon site. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 22:59 | |
| Même chose chez moi, il n'y a aucun problème. Il doit y avoir un paramètre quelque part qui fausse le jeu, c'est difficile de juger sans les programmes véritables. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: superposition des exécutables Mar 5 Juin 2012 - 23:31 | |
| Certes. Mais il faut qu'Ambroise essaie déjà cette manipulation pour constater ce que ça donne chez lui. Puis, soit il étoffe cet exemple petit à petit pour en arriver à ses deux programmes, soit il réduit ses deux programmes au minimum, juste pour produire l'enchaînement, et il finira par trouver l'anomalie. Est-il certain de ne pas cliquer dans l'écran du programme appelant, étant impatient de voir apparaître le second ? | |
|
| |
ambroise
Nombre de messages : 264 Localisation : Haute-Savoie Date d'inscription : 29/04/2012
| Sujet: Re: superposition des exécutables Mer 6 Juin 2012 - 8:54 | |
| Bonjour,
Les petits programmes test de JL35 conduisent bien à afficher le prog2 au-dessus du prog1. Mais mes programmes à moi restent indisciplinés... même ce matin, après une nuit de repos.
J'ai systématiquement la fenêtre d'erreur "Cannot open..." à l'ouverture du second programme. Je me demande si ce n'est le fait de cliquer sur "ok" de cette fenêtre qui fait foirer les choses...
Je vais suivre les conseils de Klaus pour récrire mon second programme à petits pas et voir à quelle ligne tout bascule...
Je vous redonne de mes nouvelles dans la journée. Merci à tous deux. | |
|
| |
ambroise
Nombre de messages : 264 Localisation : Haute-Savoie Date d'inscription : 29/04/2012
| Sujet: Re: superposition des exécutables Mer 6 Juin 2012 - 16:44 | |
| Pas moyen de mettre mon prog2.exe au-dessus du prog1.exe avec to_foreground 0. Par contre je réussis si je code to_background 0 dans le sous-programme de prog1.exe qui traite l'ouverture du prog2.exe Avec un inconvénient : la fenêtre du prog1.exe va se cacher derrière toutes les fenêtres ouvertes de l'écran. De quoi paniquer un utilisateur ! Il y a des jours où je ferais mieux de rester couché ! | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: superposition des exécutables Mer 6 Juin 2012 - 17:24 | |
| Déjà ce n'est absolument pas normal que tu aies cette erreur récurrente "cannot open...", à mon avis l'erreur initiale vient de là et il faut éliminer ça. Sinon, tu peux aussi essayer (en ôtant le to_backround) d'afficher tes fenêtres côte à côte, en décalant la fenêtre du prog2 à droite de la fenêtre du prog1 (si leurs dimensions le permettent, évidemment). C'est difficile de juger sans voir exactement ce qui se passe. | |
|
| |
ambroise
Nombre de messages : 264 Localisation : Haute-Savoie Date d'inscription : 29/04/2012
| Sujet: Re: superposition des exécutables Mer 6 Juin 2012 - 17:47 | |
| J'ai même l'erreur "cannot open file" avec les 2 mini programmes de Klaus. Peut-être que Window 7 (64 bits) n'aime pas Panoramic, ou... l'inverse ! Pour l'instant je décale en effet la fenêtre 2 par rapport à la fenêtre 1. Je ne comprends pas non plus pourquoi il me signale que le mot en argument est un fichier impossible à ouvrir. Je ne lui ai jamais demandé d'ouvrir un mot !!! Et ensuite, je vois que le programme 2 s'est bien ouvert.
Dernière édition par ambroise le Mer 6 Juin 2012 - 17:54, édité 1 fois | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: superposition des exécutables Mer 6 Juin 2012 - 17:51 | |
| Et tu génères bien un exécutable à partir des deux mini-programmes, puis tu double-cliques sur le premier, au lieu de le lancer par l'éditeur ? Car sinon, l'erreur est normale ! | |
|
| |
ambroise
Nombre de messages : 264 Localisation : Haute-Savoie Date d'inscription : 29/04/2012
| Sujet: Re: superposition des exécutables Mer 6 Juin 2012 - 17:55 | |
| Oui, je fais tout à fait ça. (J'ai ajouté quelques remarques à mon message précédent) | |
|
| |
Contenu sponsorisé
| Sujet: Re: superposition des exécutables | |
| |
|
| |
| superposition des exécutables | |
|