Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Bug de PANORAMIC.EXE | |
| | Auteur | Message |
---|
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Bug de PANORAMIC.EXE Mar 9 Fév 2016 - 21:17 | |
| Bonjour à tous Dans certaines situations, les sources lancés avec PANORAMIC.EXE sont éxécutés 2 fois. Les 2 sources de test sont à enregistrer dans le même répertoire: - Code:
-
' fichier1 dim f$ f$="C:\Program Files\Panoramic Editor\sources\fichier2.bas" if file_exists(f$)=0 then print "fichier introuvable!" : end execute "PANORAMIC0927i5.exe " + f$ terminate
- Code:
-
' fichier2 print rnd(1000) wait 2000 ' print error_line :' provoque volontairement une erreur ' terminate
Pour reproduire le bug: -exécutez 'fichier1' ---> 'fichier2' s'execute 2 fois -dans 'fichier2', enlever le rem de la ligne 5, enregistrez et executez 'fichier1' --->'fichier2' s'execute 1 seule fois -dans 'fichier2', enlever le rem de la ligne 4, enregistrez et executez 'fichier1' --->'fichier2' s'execute 2 fois
Dernière édition par silverman le Mer 15 Fév 2017 - 15:59, édité 3 fois | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Bug de PANORAMIC.EXE Mar 9 Fév 2016 - 21:17 | |
| | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Bug de PANORAMIC.EXE Mer 15 Fév 2017 - 15:57 | |
| Plus rien ne marche avec la version 0927? Je n'arrive plus à lancer un source avec la version sans editeur | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Bug de PANORAMIC.EXE Mer 15 Fév 2017 - 16:47 | |
| - Citation :
- Pour reproduire le bug:
-exécutez 'fichier1' ---> 'fichier2' s'execute 2 fois -dans 'fichier2', enlever le rem de la ligne 5, enregistrez et executez 'fichier1' --->'fichier2' s'execute 1 seule fois -dans 'fichier2', enlever le rem de la ligne 4, enregistrez et executez 'fichier1' --->'fichier2' s'execute 2 fois Il y a un vieu bug, signalé déjà à plusieurs reprises, concernant le llancement de programmes Panoramic par programme. Jack a tenté d'y remédier à plusieurs reprises. En gros, ce qui se passe, un EXE créé avec Panoramic démarre d'abord dans initerpréteur Panoramic. Ce dernier va ensuite analyser les paramètres. Si le paramètre est un chemin et nom d'un fichier BAS, il sera exécuté avant même le programme pour lequel l'EXE a été génére. Puis, ce sera le tour du programme réel contenu dans l'EXE. Il y a un vrai problème au niveau du lancement, ce qui conduit, effectivement, à un pseudo-double lancement, dans certains cas. Espérons qu'à l'aide des codes postés ci-dessus, Jack saura mettre le doigt dessus... | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Mer 15 Fév 2017 - 19:19 | |
| Et dans certains cas, ça coince carrément l'ordinateur à tel point qu'il faut faire un reset, c'est embettant. Espérons effectivement que Jack trouve bientôt la solution. | |
| | | Oscaribout
Nombre de messages : 471 Date d'inscription : 29/12/2016
| Sujet: Re: Bug de PANORAMIC.EXE Jeu 16 Fév 2017 - 0:01 | |
| Embêté par ce bug il y a quelque temps, j'avais trouvé une solution. J'avais voulu retrouvé la méthode pour mon programme en cours, et finalement je viens de retrouver le principe. J'essaye de mettre le programme en défaut pour le tester avant de vous le donner, mais je n'arrive pas à avoir de clone une seule fois. Peut-être pourriez-vous vérifier que ça marche, vu que ce problème n'intervient que par moment. - Code:
-
' teste de blocage double démarrage de Panoramic ' Si le programme est déjà lancé au départ, il a fait une copy d'arrêt pour le clone du programme wait 1000 if clipboard_string_paste$ = "Arret" then arret_clone() clipboard_string_copy "Arret" :' pour le clone
' ------------- ici le code GUI ---------------
wait 1500 : clipboard_string_copy "" :' pour un bon départ suivant. END ' ============================================= ' procédures et sous-programme
' ============================================= ' -------- Pour le clône de Panoramic --------- sub arret_clone() clipboard_string_copy " " terminate :' le clone s'arrète, mais permet un redémarrage suivant end_sub
' pour le cas où le programme avec ses code serait systématiquement fermé ' sélection et copier n'importe quoi, en dehors de Arret Je ne suis pas sure que cela marche à tous les coups. | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Bug de PANORAMIC.EXE Jeu 16 Fév 2017 - 12:08 | |
| @oscaribout j'ai déjà réglé ce problème de double démarrage et j'utilise le même principe que toi, mais je cré un fichier vide comme marqueur "arret". Je n'avais pas pensé à utiliser le presse-papier, c'est une bonne idée! @tous J'ai déterré un ancien post involontairement, ce que je voulais dire en fait, c'est: - Code:
-
execute "PANORAMIC.exe " + "monsource.bas" ne fonctionne plus avec la version 0927 | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Bug de PANORAMIC.EXE Ven 17 Fév 2017 - 0:28 | |
| Pour lancer un programme Panoramic avec des paramètres, essayez de placer le paramètre en deuxième paramètre et de le prendre dans le programme lancé par PAMAM_VALUE$(2), comme ceci: - Code:
-
execute MonProgramme.exe " " param pour le prendre dans MonProgramme comme ceci: - Code:
-
p$ = param_value$(2) Ceci permet d'éviter un double lancement du programme MonProgramme.exe. | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Bug de PANORAMIC.EXE Ven 17 Fév 2017 - 13:19 | |
| Je ne passe pas de paramètre, je me contente juste de lancer un source '.bas', et ton astuce est impossible à réaliser avec la version de panoramic sans éditeur. Avec la version de panoramic sans éditeur, il y a juste le menu 'open', et je peux éxécuter un source sans problème. Pour la version 0927: Lancer la version de panoramic sans éditeur à partir de la commande 'execute', sans paramètre, ça marche. Lancer la version de panoramic sans éditeur à partir de la commande 'execute' pour éxécuter un source, ça ne marche plus, alors que cela fonctionnait parfaitement sous une ancienne version(0927i5 dans mon cas).
As-tu des soucis similaires pour Synedit_Editor? Parviens-tu à éxécuter un fichier '.bas'? | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Bug de PANORAMIC.EXE Ven 17 Fév 2017 - 14:13 | |
| Voici un exemple simple qui marche, et qui déjoue les pièges des guillemets autour des noms longs avec espaces: - Code:
-
dim dir$ : dir$ = dir_current$ + "\" dim exec$ : exec$ = "PANORAMIC.exe" dim source$ : source$ = "test.bas" dim cmd$ : cmd$ = "test.bat" dim s$
' construction du code Panoramic à lancer s$ = "message "+chr$(34) s$ = s$ + "coucou" s$ = s$ + chr$(34) if file_exists(dir$+source$)=1 then file_delete dir$+source$ file_open_write 1,source$ file_writeln 1,s$ file_writeln 1,"terminate" file_close 1
' construction d'un fichier BAT à lancer if file_exists(dir$+cmd$)=1 then file_delete dir$+cmd$ file_open_write 1,cmd$ s$ = "cd "+chr$(34)+dir$+chr$(34)+" " file_writeln 1,s$ s$ = exec$+" "+source$ file_writeln 1,s$ file_close 1
' exécution execute dir$+cmd$ end On voit apparapitre une fenêtre DOS, et c'est normal. Sur le forum, il y a moultes exemples comment éviter une telle fenêtre utilisant VBScript. | |
| | | Oscaribout
Nombre de messages : 471 Date d'inscription : 29/12/2016
| Sujet: Re: Bug de PANORAMIC.EXE Ven 17 Fév 2017 - 14:30 | |
| - Silverman a écrit:
- Lancer la version de panoramic sans éditeur à partir de la commande 'execute' pour éxécuter un source, ça ne marche plus, alors que cela fonctionnait parfaitement sous une ancienne version(0927i5 dans mon cas).
Si je comprend bien, cela veut dire: exécuter un source. Pourquoi pas plutôt CHAIN qui est conçu pour cela. J'ai voulu faire un teste d'exécuter avec 'execute' un source, mais malheureusement n'importe quel éditeur de Panoramic (même 1 de 2010) se termine par 'impossible RUN'. Ilk va falloir de nouveau que je relance Windows. Maintenant pour Panoramic j'ai repris un ancien éditeur qui fonctionne et qui a les mot-clefs, aide... Si vous êtes d'accord pour en parler, j'en reparlerai dans un autre sujet que j'ai ouvert (mais c'est pas l'éditeur que j'ai présenté). Pour le cas où, et ça marche bien. J'en ai eu marre de Panoramic_Editor qui ne va plus du tout, et pour lequel Jack n'intervient pas Il doit y avoir une incompatibilité avec Windows. Petit à petit Panoramic_Editor s'abime ou bloque Windows, je ne sais pas. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Bug de PANORAMIC.EXE Ven 17 Fév 2017 - 14:40 | |
| Non, Panoramic_Editor n'a jamais été conçu pour pouvoir être lancé en mode commande avec le nom d'un fichier source en paramètre. Si jamais ça a marché dans le passé, c'était un effet sécondaire.
Depuis fort longtemps, Jack publie une version "sans éditeur" pour chaque version Panoramic. Ce programme est apelé Panoramic.exe. Une petite remarque personnelle: ce nom est très mal choisi, étant donné que l' fichier exécutable généré et lance par Panoramic_Editor.exe s'appelle Panoramic.exe également... mais passons.
Ce programme Panoramic.exe peut être lancé en mode interactif, auquel cas il présente un menu avec une seule option permettant d'ouvrir le fichier source à exécuter.
Ce programme Panoramoc.exe peut également être lancé en mode commande (et c'est précisément cue qui se passe dans mon exemple), et il, il prend le nom du fichier source dans les paramètres de la commande. Ceci est le mode normal et préféré - Panoramic.exe a été conçu pour cela. | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Bug de PANORAMIC.EXE Ven 17 Fév 2017 - 16:47 | |
| @Klaus Ton exemple fonctionne. Après de multiple essais, je viens de comprendre : en fait, c'est un nouveau bug de la commande 'execute' qui est apparu avec la version panoramic_editor0927, mais qui n'était pas présent avec la version panoramic_editor0927i5. - Code:
-
dim prog$,par$ ' dir_change "C:\Program Files\Panoramic Editor V 0.9.25" ' prog$="PANORAMIC0927.exe" : if file_exists(prog$)=0 then message prog$+" pas trouvé!":end prog$=prog$+" " par$="test.bas" : if file_exists(par$)=0 then message par$+" pas trouvé!":end ' execute prog$ + par$ Ce code fonctionne parfaitement sous panoramic_editor0927i5, mais ne marche plus avec la version panoramic_editor0927! Cependant, j'ai codé une alternative(shell execute) qui fonctionne parfaitement. Pour ceux que ça intéresse: - Code:
-
' plus de détails, en anglais: ' https://msdn.microsoft.com/en-us/library/windows/desktop/bb762153%28v=vs.85%29.aspx
dim File_dir$,File$,Parameters$,Directory$ ' ' Directory$ = "C:\Program Files\Panoramic Editor V 0.9.25" : if dir_exists(Directory$)=0 then message Directory$+" pas trouvé!":end ' ' File_dir$ = "C:\Documents and Settings\Silverman\Bureau" :' un exemple de chemin absolu File_dir$ = "" :' rien donc le chemin de 'File$' est relatif à 'Directory$' File$ = File_dir$ + "panoramic0927.exe" : CHECK_FILE_EXIST(File$,Directory$) ' Parameters$ = "test.bas" : CHECK_FILE_EXIST(Parameters$,Directory$)
' lance un programme source RUN_FILE(File$,Parameters$,Directory$)
END sub RUN_FILE(File$,Parameters$,Directory$) ' ' File$ : fichier éxécutable. Le chemin de ce fichier peut être relatif(le fichier est recherché dans 'Directory$') ou absolu(dans ce cas, il faut écrire en entier chemin+fichier) ' Parameters$ : fichier à lancer ' Directory$ : chemin du fichier 'Parameters$' ' if variable("shell32%")=0 ' commande : copie de mémoire dim kernel32% kernel32%=3 LIBRARY kernel32%,"kernel32" command "copy_memory","RtlMoveMemory",kernel32%,"III","stdcall" ' ex.: copy_memory adr(destination), adr(source), taille_en_octet%
' commande : shell dim shell32% shell32%=5 LIBRARY shell32%,"shell32" command "run","ShellExecuteA",shell32%,"IIIIII","stdcall" ' ex.: run hwnd%,adr(Operation$), adr(File$),adr(Parameters$), adr(Directory$), ShowCmd% end_if
' dim_local null% dim_local hwnd%,Operation$,ShowCmd% :' ,File$,Parameters$,Directory$ dim_local lp_Operation%,lp_File%,lp_Parameters%,lp_Directory%
hwnd%=0 Operation$="open" : copy_memory adr(lp_Operation%),adr(Operation$),4 ' File$="panoramic0927.exe" : copy_memory adr(lp_File%),adr(File$),4 ' Parameters$="test.bas" : copy_memory adr(lp_Parameters%),adr(Parameters$),4 ' Directory$="C:\Program Files\Panoramic Editor V 0.9.25" : copy_memory adr(lp_Directory%),adr(Directory$),4 ShowCmd%=10
run hwnd%,lp_Operation%,lp_File%,lp_Parameters%,lp_Directory%,ShowCmd% end_sub
sub CHECK_FILE_EXIST(File$,Directory$) ' vérifie l'existence d'un fichier dont le chemin est absolu ou relatif à 'Directory$' if file_extract_path$(file$)="" if file_exists(Directory$+File$)=0 then message Directory$+File$+" pas trouvé!":end else if file_exists(File$)=0 then message File$+" pas trouvé!":end end_if end_sub @oscaribout Tu as raison, on peut utiliser la commande 'chain', mais on ne peut pas passer de paramètre avec cette commande. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Bug de PANORAMIC.EXE Ven 17 Fév 2017 - 19:00 | |
| - Citation :
- Tu as raison, on peut utiliser la commande 'chain', mais on ne peut pas passer de paramètre avec cette commande.
Une autre différence, et de taille, celle-là: alors que les commandes EXECUTE et EXECUTE_WAIT lancent un autre programme puis permettent au programme d'origine de continuer, la commande CHAIN ne le permet pas. Elle est équivalente à une commande EXECUTE, suivie immédiatement de TERMINATE. | |
| | | Contenu sponsorisé
| Sujet: Re: Bug de PANORAMIC.EXE | |
| |
| | | | Bug de PANORAMIC.EXE | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |