FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Éviter le double lancement d'un programme. Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Éviter le double lancement d'un programme. Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Éviter le double lancement d'un programme. Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Éviter le double lancement d'un programme. Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Éviter le double lancement d'un programme. Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Éviter le double lancement d'un programme. Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Éviter le double lancement d'un programme. Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Éviter le double lancement d'un programme. Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Éviter le double lancement d'un programme. Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Éviter le double lancement d'un programme. Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Éviter le double lancement d'un programme. Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Éviter le double lancement d'un programme. Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Éviter le double lancement d'un programme. Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Éviter le double lancement d'un programme. Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Éviter le double lancement d'un programme. Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G Double SIM à 599€
599 €
Voir le deal

 

 Éviter le double lancement d'un programme.

Aller en bas 
4 participants
AuteurMessage
Invité
Invité




Éviter le double lancement d'un programme. Empty
MessageSujet: Éviter le double lancement d'un programme.   Éviter le double lancement d'un programme. EmptyMer 3 Fév 2016 - 20:28

J'ai mis en inutilitaire, car j'espère que ce problème de voir un programme se relancer une fois fini, est provisoire.
Code:
repeat
   pause 200
until scancode = 19 :' appuyer sur la touche pause
terminate
end

Constamment j'avais ce problème de double démarrage, et je ne pouvais pas voir le contenu des memos et edits, sans être obligé de recommencer le remplissage. Là ça marche. La boucle repeat/until agit comme un end, et la pause de 200 fait que le procésseur ne travail guère plus que si le programme est fermé.

Ah oui, il est évident que le END est inutile à la fin. Il y est, il y reste.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Éviter le double lancement d'un programme. Empty
MessageSujet: Re: Éviter le double lancement d'un programme.   Éviter le double lancement d'un programme. EmptyMer 3 Fév 2016 - 23:29

Astuce intéressante, Cosmos70. A garder dans la librairie des astuces.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Éviter le double lancement d'un programme. Empty
MessageSujet: Re: Éviter le double lancement d'un programme.   Éviter le double lancement d'un programme. EmptyVen 12 Fév 2016 - 13:56

@cosmos70
J'imagine que tu utilises cette astuce quand tu es dans le cas de débogage, sans erreur dans le source, mais dans le cas d'un arrêt inopiné, ton astuce ne fonctionne plus.

Voici la mienne:
Pour que ça marche, il faut "planter" le 1er démarrage, pour cela il faut par exemple créer un... ACCESS VIOLATION !!!
Pour une fois, il va nous servir celui-là Twisted Evil

Dans le lanceur, j'ajoute une ligne avant la commande 'execute', comme ceci:
lanceur:
Code:

if file_exists("check_if_running.txt")=1 then file_delete "check_if_running.txt"
execute "PANORAMIC.EXE " + source$

et dans le source, au tout début, à la ligne 1:
source:
Code:

if file_exists("check_if_running.txt")=0
   file_open_write 1,"check_if_running.txt" : file_close 1
   poke 1,0
   terminate
end_if
Au 1er démarrage, le message "ACCESS VIOLATION" apparait, mais le second se passe normalement. Ce n'est pas très élégant, mais ça marche bien. Le 'terminate' ne sert à rien, car dès que le plantage a lieu, PANORAMIC.EXE relance immédiatement le source, mais je le laisse par sécurité.

EDIT:
EUREKA! Ca marche nickel, plus besoin de créer un 'access violation'!!!
C'est beaucoup mieux ainsi:
Code:

if file_exists("check_if_running.txt")=0
  file_open_write 1,"check_if_running.txt" : file_close 1
  dll_on "user32" : dim n%
  n%=dll_call1("DestroyWindow",handle(0))
  dll_off
  panel 1 : delete 1
  end
end_if
Pouvez vous me dire si ça fonctionne chez vous également?

EDIT2:
ajout de 'dll_off' dans le code
Revenir en haut Aller en bas
Invité
Invité




Éviter le double lancement d'un programme. Empty
MessageSujet: Re: Éviter le double lancement d'un programme.   Éviter le double lancement d'un programme. EmptyVen 12 Fév 2016 - 18:21

Bonjour Silverman.

Je viens de terminer un problème. J'ai ramoné ma cheminée ce matin avec des cannes, et mon hérisson est resté dedans. J'ai réussi à l'enlever depuis le toit, et j'ai encore du mal à rentrer dans les problèmes de code.

Je regarde tes sources, mais j'ai du mal de comprendre. Apparemment tu essayes de faire autre chose. Pour ma part, le but du programme était d'éviter que le source se relance une fois qu'il est déjà exécuté, et se ferme. C'est une chose qui se produit presque à chaque fois.

Ce programme fonctionne, mais avec l'éditeur de Klaus, il y a un problème. Si je lance Synedit Editor, et que panoramic.exe est encore actif même si il a disparu de la barre de tâche, Synedit plante. Pourquoi ça plante? Car j'ai tendance à fermé le programme avec la croix par habitude, alors qu'il y a une boucle repeat/until dont la sortie est la touche pause. Ce qui fait que dans ce cas précis, Panoramic.exe n'a pas complètement disparu. Il a fermé, mais reste dans le gestionnaire de tâches. Pour résoudre ce problème, j'ai mis border_hide, et je marque la fenêtre en rouge à la fin, pour me rappeler que je dois cliquer sur pause pour sortir. A partir de là ça marche.

Si j'ai bien compris, ton problème est de fermer panoramic.exe après un acces violation, ce qui est un autre problème. J'ai essayé tes codes mais je ne sais pas quelles sont les lignes qu'il y a avant. Ca doit fermer quoi sur une erreur, mais là ...

J'essaye plusieurs trucs, et remplacé ma méthode par la tienne. Il lance mon programme, et je vois 2 icônes de Panoramic dans la barre de tâche. apparemment ça na pas l'air de marché, j'ai encore 2 lancements du programme, et il en reste un une fois fini, même en cliquant sur le message "cannot open file... occupé par un autre programme". Surement que tu essayes autre chose.

Malheureusement je ne peux pas rester plus.
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Éviter le double lancement d'un programme. Empty
MessageSujet: +++   Éviter le double lancement d'un programme. EmptySam 13 Fév 2016 - 17:06

Je ne voudrais pas avoir l'air d'ergoter...
Mais si c'est une astuce utile,
alors ce n'est pas un inutilitaire,
qui (par définition) ne sert à rien !?
Rolling Eyes alien Laughing
Non ?
scratch
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Éviter le double lancement d'un programme. Empty
MessageSujet: Re: Éviter le double lancement d'un programme.   Éviter le double lancement d'un programme. EmptySam 13 Fév 2016 - 18:40

C'est tout à fait le bon sens Martien! Laughing
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Invité
Invité




Éviter le double lancement d'un programme. Empty
MessageSujet: Re: Éviter le double lancement d'un programme.   Éviter le double lancement d'un programme. EmptySam 13 Fév 2016 - 18:48

Au départ je n'étais pas sûre qu'on voit les choses de la même façon que moi. Le double lancement, je l'ai constamment, mais il y a des périodes où le problème n’apparait pas. J'ai pris l'habitude avec Panoramic d'être prudent. Plus d'une fois un problème que je poste n'ai pas vu chez les autres.

Ensuite j'espère bien que Jack a le soucis de chercher pourquoi cela se produit. On en a déjà parlé, mais maintenant plus personne ne s'en préoccupe. J'espère que le code que j'ai posté n'est que provisoire, donc une fois résolu, ce code devient inutile! elephant
Revenir en haut Aller en bas
silverman

silverman


Nombre de messages : 970
Age : 52
Localisation : Picardie
Date d'inscription : 18/03/2015

Éviter le double lancement d'un programme. Empty
MessageSujet: Re: Éviter le double lancement d'un programme.   Éviter le double lancement d'un programme. EmptySam 13 Fév 2016 - 20:11

Le double lancement, mon lanceur "ne connais plus ça" avec le code que j'ai posté plus haut, sous le EDIT rouge. Il faut juste prendre la précaution d'utiliser un nom de fichier absolu pour "check_if_running.txt". Ce fichier est en permanence créé  ou effacé dans le dossier du lanceur, quelquesoit le source que j'éxécute.
Plus exactement, le premier lancement est tué dans l'oeuf; il apparait quelques millisecondes puis disparait pour laisser place au lancement final. C'est si rapide que c'est invisible.
Maintenant, on a tous des OS et des machines différentes, alors pour ce bug précis, ce qui fonctionne chez les uns ne fonctionne pas forcément chez les autres.
Il n'y a eu que peu de retour sur l'astuce de cosmos70 ou la mienne, donc on ne peut pas classer ça dans les utilitaires si on ne sait pas si ça marche vraiment.

NB: le double lancement n'affecte que les personnes qui utilise 'panoramic.exe' pour créer des IDE par exemple, afin d'éxécuter des codes sources. 'Panoramic_editor' n'est pas concerné.
Revenir en haut Aller en bas
Invité
Invité




Éviter le double lancement d'un programme. Empty
MessageSujet: Re: Éviter le double lancement d'un programme.   Éviter le double lancement d'un programme. EmptyDim 14 Fév 2016 - 2:27

Je ne peux rien dire sur ton programme. Ca ne fonctionne pas chez moi, mais j'utilise Synedit_Editor, et je ne sais pas comment est fait le lancement.

J'ai essayé ton programme, et là il se lance une nouvelle fois à chaque fermeture. J'avais 5 icônes dans la barre de tâches, mais c'est peut-être particulier.

Par contre, j'ai essayé une amélioration de mon programme qui ne bloque plus Synedit par un clic irréfléchie sur la croix de fermeture de la fenêtre.
Donc j'ai retiré border_hide sur la fenêtre 0, et voici le code:

Code:

label fin

' tableur(): programme en cours
on_close 0,fin  
caption 0, "appuyer sur pause":beep : ' devient inutile
repeat        
   pause 500            
until scancode = 19 or clicked(0) = 1:' appuie sur la touche pause

fin:  
execute "C:\PANO\kill_pano.exe"  :' programme que l'un d'entre-vous a développé.
' terminate
' end


Le programme est lancé et est arrête par la repeat/until, et sert de END. Si on met des boutons, ou autres, les évènements fonctionnent. En fermant la fenêtre, le programme kill_pano développé je ne sais plus , par JL35 ou Papydall, nettoie le gestionnaire de tâches de Panoramic, et Synedit_Editor n'est plus perturbé.
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Éviter le double lancement d'un programme. Empty
MessageSujet: Re: Éviter le double lancement d'un programme.   Éviter le double lancement d'un programme. EmptyDim 14 Fév 2016 - 2:53

cosmos70 a écrit:
En fermant la fenêtre, le programme kill_pano développé je ne sais plus , par JL35 ou Papydall, nettoie le gestionnaire de tâches de Panoramic, et Synedit_Editor n'est plus perturbé.

C’est bien moi l’auteur du code.
Je l’ai posté ici

A toute fin utile, je rappelle ce code

code:
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





Éviter le double lancement d'un programme. Empty
MessageSujet: Re: Éviter le double lancement d'un programme.   Éviter le double lancement d'un programme. Empty

Revenir en haut Aller en bas
 
Éviter le double lancement d'un programme.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» ce fut mon 2ème programme en panoramic! (mauvais programme)
» fermer le programme qui lance un autre programme
» eviter ce bug!
» Une erreur à éviter!
» Pour éviter certaines fautes d'orthographe

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les inutilitaires-
Sauter vers: