banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#1 Fri 12 September 2008 10:23

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

[MapBasic 9.0] Exécuter une fenêtre dos en arrière plan

Bonjour,
Voilà, depuis mon programme mapbasic, je lance la ligne suivante :

Code:

Run Program "cmd.exe /c Dir ""C:\docs\RMT*.txt"" /O-D /B >""C:\docs\list_fich.rep"""

Cela a pour effet de lancer une fenêtre MS DOS au premier plan, donc mon application principale perd le focus. Je voudrais donc savoir s'il existe un moyen de lancer cette fenêtre dos en arrière plan, pour à la fois éviter une apparition intempestive de la fenêtre dos devant mon application, et dans certains cas une perte de focus de mon application. Il faudrait que le lancement de cette commande soit transparent pour l'utilisateur de mon programme

Merci par avance

Hors ligne

 

#2 Tue 16 September 2008 10:38

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MapBasic 9.0] Exécuter une fenêtre dos en arrière plan

Je ne crois pas qu'on puisse obliger cmd.exe à s'exécuter en arrière plan
La boite DOS va être visible et repasser automatiquement en arrière plan à la fin de l'exécution
Si l'exécution est longue...ça peut être génant, mais pas grave (peut être une solution avec ForegroundTaskSwitchHandler ??)
ps: votre commande crée un fichier; si celui-ci existait déjà il sera remplacé par le nouveau. Pour ajouter à la fin d'un fichier existant, utiliser >> au lieu de >
ps2: DOS va vite...si vous voulez accéder tout de suite au fichier créé vous risquez d'avoir une message "fichier non trouvé" car Windows n'aura pas encore mis à jour le répertoire qui le contient...

Hors ligne

 

#3 Tue 16 September 2008 11:30

Damien BEAUSEIGNEUR
Participant assidu
Lieu: meyzieu
Date d'inscription: 5 Sep 2005
Messages: 425

Re: [MapBasic 9.0] Exécuter une fenêtre dos en arrière plan

Il faut peut être tenter /Q pour avoir l'équivalent de l'ECHO OFF

Cela donnerai

Code:

Run Program "cmd.exe /Q /c Dir ""C:\docs\RMT*.txt"" /O-D /B >""C:\docs\list_fich.rep"""

mais je donne pas de garantie à ce fonctionnement..
Note run program lance la commande dos en parallèle du traitement normal. Ce qui peut occasionner l'absence du fichier ou une non mise à jour. Le mieux est de supprimer le fichier avant, et d'attendre sa création.

cordialement

Hors ligne

 

Pied de page des forums

Powered by FluxBB