Forum Liberty Basic France

Général » Fonction run Lancement de fichier .exe, .bat, .ktn
Le 29/10/2018 à 21h09

Libertynaute

Groupe: Membre

Inscrit le: 10/10/2017
Messages: 58
Bonjour,
Comme on peut lancer des programme avec la fonction run en JB,
Est ce que l’on peut avec le même programme en JB l’arreter (Le fermer) ?
Merci
____________________
Castel

   
Le 29/10/2018 à 23h52

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 312
avec la commande

run "nom.exe"

ou si le .exe est caché


run "dossier1\dossier1-1\nom.exe"

tu remplace ensuite .exe par .bat si tu veux lancer un .bat etc :)


pour fermer un .exe je n'ai pas encore la réponse ^^



Edité par atomose Le 29/10/2018 à 23h53
____________________
Yo !

MSN Web    
Le 30/10/2018 à 00h20

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 449
Oulah ! Et bonjour,

Un programme peut-il arrêter un autre programme ? ça me semble très pointu. Peut-être lancé en administrateur avec un run + le gestionnaire des tâches (je ne suis présentement pas sous windows, je ne sais plus comment s'appelle la chose qu'on lance avec ctrl+alt+suppr), mais il resterait encore à sélectionner le bon programme dans la liste,

Peut-être pas si impossible.

Mais arrêter un programme directement à partir d'un autre programme, je ne vois pas comment faire.
____________________
Just Basic :
  • utilisation courante avec Linux/Mageia6 + Wine (support partiel et quelques petites choses non implémentées dans l'aide mais pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 30/10/2018 à 01h41

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 1993
Je crois qu'on ne peut pas fermer, même pas le navigateur (qui s'ouvre en runnant un fichier .htm)
____________________
Roro

   
Le 30/10/2018 à 05h50

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 449
Si le programme à arrêter est un programme basic, on pourrait s'en sortir en l'écrivant pour qu'il s'arrête s'il trouve un mot clef dans un fichier, qui est modifié par le programme qui commande l'arrêt. Ce ne serait pas un arrêt immédiat puisqu'il faut lire le fichier à intervalles réguliers, mais ce serait assez simple à mettre en oeuvre, je trouve.
____________________
Just Basic :
  • utilisation courante avec Linux/Mageia6 + Wine (support partiel et quelques petites choses non implémentées dans l'aide mais pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 30/10/2018 à 10h30

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 1993
Citation:
Si le programme à arrêter est un programme basic,

Mais quel intérêt d'avoir deux programmes distincts quand on peut faire la même chose avec des fenêtres ?
____________________
Roro

   
Le 30/10/2018 à 14h03

Libertynaute

Groupe: Membre

Inscrit le: 10/10/2017
Messages: 58
Hello,
C’est une petite app. Que j’avais fait il y a quelques mois et qui fonctionne.
Et l’execice Que je suis en train de faire utilise l’ensemble de l’app.
En parcourant l’help J’ai utilisé la fonction run. Ça fonctionne bien.
Mais une fois lancée elle es toujours active. Quand je sort de l’exercice elle est toujours présente.
J’ai voulu savoir si quelqu’un a déjà été confronté à cette situation et si oui comment on peut la
résoudre.
Dans l’immediat Je suis contraint de copier coller le code source de l’app. Et le coller dans mon
exercice.
Je dois également contrôler et voir modifier qu’il n’y ai pas de doublon dans les Handels, étiquettes et autres variables.
Si cela était faisable, mon programme serait moins long.
Merci à vous tous pour vos réponses.
____________________
Castel

   
Le 30/10/2018 à 14h50

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 449
Salutations de l'après-midi,

Roland:
Mais quel intérêt d'avoir deux programmes distincts quand on peut faire la même chose avec des fenêtres ?

Pas d'idée précise en tête... Un exemple pourrait être un gros programme avec peu de ressources mémoire disponibles : on scinde le programme en programmes plus légers, qu'une sorte de programme coordonnateur lance et arrête au besoin...

Désolé, Castel, je n'ai pas la réponse à ta question initiale, mais je n'ai pas tout saisi :
Castel:
En parcourant l’help J’ai utilisé la fonction run. Ça fonctionne bien.
Mais une fois lancée elle es toujours active. Quand je sort de l’exercice elle est toujours présente.

L''exercice est un programme basic, qui lance un autre programme en utilisant <run>, donc quand tu fermes ton programme basic, le programme que tu as lancé par <run> tourne toujours ?

Castel:
Dans l’immediat Je suis contraint de copier coller le code source de l’app. Et le coller dans mon
exercice.

Tu colles le code source dans ton programme basic, ou dans le programme lancé à partir du programme basic ?

Castel:
Je dois également contrôler et voir modifier qu’il n’y ai pas de doublon dans les Handels, étiquettes et autres variables.

Un contrôle manuel parce que c'est toi qui copie-colle, ou un contrôle automatisé parce que tu souhaites que le copier-coller soit automatique ?

Peux-tu être plus explicite sur ce que tu veux faire avec ton programme lancé avec la fonction <run> , ton copier-coller et la nécessité de fermer ton programme satellite par la fermeture du programme principal ? (sans tout dévoiler non plus, c'est pas un interrogatoire^^)



Edité par Christophe Le 30/10/2018 à 14h51
____________________
Just Basic :
  • utilisation courante avec Linux/Mageia6 + Wine (support partiel et quelques petites choses non implémentées dans l'aide mais pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 30/10/2018 à 15h00

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 449
Générer et lancer un fichier batch à partir du programme principal, le fichier batch contenant un "kill"+nom de fichier ? (cité de mémoire, voir l'aide du net pour savoir comment arrêter un logiciel sous windows)
____________________
Just Basic :
  • utilisation courante avec Linux/Mageia6 + Wine (support partiel et quelques petites choses non implémentées dans l'aide mais pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 30/10/2018 à 17h39

Libertynaute

Groupe: Membre

Inscrit le: 10/10/2017
Messages: 58
Hello Christophe,
Je vais essayer d’etre plus explicite,
Je dispose d’un programme nommé et situé dans c:\archiveJB\aaa.exe
Je suis en train de faire un programme avec JBasic nommé bbb.bas
Le programme aaa.exe est utile au programme bbb.bas.
Par l’interme D’un bouton du programme bbb.bas j’ecris La commande suivante:
Run ouvrez les guillemets c:\archiveJB\aaa.exe fermez les guillemets. Et ça fonctionne.
Il résulte que j’ai deux programmes à l’ecran: bbb.bas et aaa.exe qui à été lancé par bbb.bas.
Dans cette situation je peux passer de l’un à l’autre.
Mais lorsque je ferme bbb.bas (en cliquant sur la petite crois en haut à droite), aaa.exe est
Toujours présent à l’ecran, et je peux continuer à l’utiliser.
La question était de savoir si l’on pouvait à partir du (dans) le programme bbb.bas
fermer aaa.exe.
Je vais copier le code aaa.bas dans bbb.bas et l’adapter pour qu’il fonctionne.
Je pense que c’est la chose la plus longue (relatif) mais la plus simple à faire.
____________________
Castel

   
Le 30/10/2018 à 17h53

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 1993
On présume que "aaa.exe" n'est pas un prog LB/JB.
____________________
Roro

   
Le 30/10/2018 à 18h38

Libertynaute

Groupe: Membre

Inscrit le: 10/10/2017
Messages: 58
Le programme aaa.exe a été fait avec LB V4.5.1
Le programme bbb.bas avec JB V2 que j’ai téléchargé dernièrement.
Je vais essayer de faire en sorte que tout soit en JB pour voir s’il y a un changement.
____________________
Castel

   
Le 30/10/2018 à 19h19

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 449
Merci, c'est plus clair dit comme ça.

L'astuce du fichier dans lequel bbb écrit "il faut se coucher" et par lequel aaa se ferme parce qu'il vient d'y lire "il faut se coucher", ne convient-elle pas ?

Ceci dit, je ne l'ai pas testé, et je préfèrerais de loin une instruction, un message directement evoyé de bbb à aaa, plutot que ce fichier intermédiaire qu'il faut lire à intervalles réguliers.

Mais à défaut d'autre chose...
____________________
Just Basic :
  • utilisation courante avec Linux/Mageia6 + Wine (support partiel et quelques petites choses non implémentées dans l'aide mais pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 30/10/2018 à 19h24

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 1993
Si c'est un prog LB il suffit de créer une fenêtre avec un "open for...#" et tu met le code de: aaa" dedans
Tu mets un flag (drapeau à 0 ou à 1) à l'ouverture de l'open de "aaa" et un test du flag à la fermeture de: "bbb" pour que tout se ferme sans soucis. (plus un test du flag avant l'ouverture de l'open de aaa pour éviter la réouverture intempestive.
____________________
Roro

   
Le 30/10/2018 à 22h06

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 449
Castle:
Je vais copier le code aaa.bas dans bbb.bas et l’adapter pour qu’il fonctionne.
Je pense que c’est la chose la plus longue (relatif) mais la plus simple à faire.

Roland:
Si c'est un prog LB il suffit de créer une fenêtre avec un "open for...#" et tu met le code de: aaa" dedans


La voie de la sagesse... Par contre il va y avoir du travail de vérification pour qu'il n'y ait pas d'interférence entre des variables et routines aux noms identiques dans chacun des programmes :
Castle, qques messages plus haut:
Je dois également contrôler et voir modifier qu’il n’y ai pas de doublon dans les Handels, étiquettes et autres variables.


Bonne nuit.
____________________
Just Basic :
  • utilisation courante avec Linux/Mageia6 + Wine (support partiel et quelques petites choses non implémentées dans l'aide mais pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 02/11/2018 à 12h59

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 312
si besoin j'utilise cette méthode dans quasiment tous mes jeux ^^ .
Roland demandait l’intérêt d'avoir 2 programme JB/LB ben il est simple...je ne m'y connais pas trop en DLL donc j'utilise un sous programme pour gérer d'autres paramètres de mon programme principale (genre faire plusieurs timer ou plusieurs sons d'ambiance superposés etc. Pour arrêter le second programme j'utilise un scan d'un fichier texte. Si la valeur scanné est 0 alors le second programme s’arrête, si c'est 1 alors il continue, si c'est 2 il fait une autre action etc...

Je vais même pousser le problème plus loin puisque je taf en ce moment sur la création d'un réseau local et serveur en LB avec un hôte pouvant inviter un nombre X de personne a scanner ses fichier du jeu pour rejoindre la partie (je ferais un topic dessus).

Pour moi ya pas photo, soit tu utilise plusieurs programme LB/JB et tu fais ma méthode, soit tu créé un .bat qui kill ton programme, soit tu t'aventure dans les abîmes des DLL XD

Pour info mes jeux utilisant cela sont : Eternal quest (gestion son) / Stargate (gestion son) / SAOA (gestion son et timer)
____________________
Yo !

MSN Web    
Le 02/11/2018 à 15h34

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 1993
Exemple avec "Notepad++"
- Ouvrir le bloc-note et écrire:
Code VB :
 
taskkill /IM notepad++.exe
exit
 

- Nommer le fichier: "Stop"
- Changer l'extension de "Stop.txt" en: "Stop.bat"
- Mettre le fichier "Stop.bat" avec le prog ".bas" ci-dessous dans un dossier.
- Ouvrir "Notepad++" (que chacun doit avoir sur son HD)
- Lancer le prog ".bas"
- Cliquer sur: "Stop"
Et Notepad++ se ferme; c'est maaaagique.
Code VB :
 
     NOMAINWIN
    WindowWidth = 300: WindowHeight = 200
    UpperLeftX = 100
    UpperLeftY = 50
    BUTTON #w.go, "Stop !", [Stop], UL, 80, 50, 90, 40
    GRAPHICBOX #w.m 5, 5, 285, 160
    OPEN "Help" FOR window_nf AS #w
    #w, "TRAPCLOSE [closeHelp]"
    #w.m  "down;fill darkblue"
    #w.go, "!font courrier 13 bold"
    wait
 [Stop]
   run "Stop.bat"
 wait
  [closeHelp]
    CLOSE  #w
    END
 
____________________
Roro

   
Le 03/11/2018 à 19h34

Libertynaute

Groupe: Membre

Inscrit le: 10/10/2017
Messages: 58
MAGNIFIQUE!!! Ça marche et je l’ai adapté à mon application et cela fonctionne également !
C’est exactement ce que j’entendais dans mon explication.
Bravo ... Super ... Excellent !
Merci Roland.
I like Your skillness !
Je l’ai écrit en anglais parce que je n’ai pas trouvé (dans l’immediat) de terme
en français pour l’exprimer.
Bon week-end.
____________________
Castel

   
Général » Fonction run Lancement de fichier .exe, .bat, .ktn  

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie