#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