IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Turbo Pascal Discussion :

[TP] Erreur d'accès exécution prog externe ?


Sujet :

Turbo Pascal

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 107
    Points : 57
    Points
    57
    Par défaut [TP] Erreur d'accès exécution prog externe ?
    Bonjour, bonjour,

    La question est comment exécuter un programme externe d'extension "*.bat" en utilisant turbo pascal 5.5 sous windows XP?

    En suivant le code suivant dans la FAQ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    BEGIN
    Uses Dos;
    SwapVectors;
    Exec('COMMAND.COM','');
    writeln('DosError');
    SwapVectors;
    END
    L'execution ne fonctionne pas et l'erreur que je récupère est la numéro "5" qui signifie que l'accès est refusé

    Comment puis-je faire?

    En vous remerciant d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    Command.com n'existe pas sous windows XP. Tu peux récupérer le chemin complet à l'interpréteur de commande, en récupérant la variable d'envirronement COMSPEC. Pour récupérer cette variable, il faut regarder du côté de l'instruction getEnv, si je me souviens bien...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 107
    Points : 57
    Points
    57
    Par défaut
    En effet, dans la FAQ, il est dit qu'il faut utiliser "cmd.com" et non "command.com" pour windows xp.

    Et même, en utilisant le chemin cela ne fonctionne pas.

    Mon but est d'executer un fichier d'extension "*.bat" sous TP5.5 sous winXP ???

    Encore merci

  4. #4
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    Et si tu exécutes directement le fichier .bat sans passer par l'interpréteur de commandes ca ne marche pas ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 107
    Points : 57
    Points
    57
    Par défaut
    Je n'ai bien compris la question mais si j'execute le ".bat" sous windows ou bien sous dos => cela fonctionne

  6. #6
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    Et à partir de TP ? En passant le chemin du .bat à exec

  7. #7
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    Premier problème : sous XP, l'interpréteur de commandes en ligne ne s'appelle effectivement pas COMMAND.COM, sauf si le fichier config.nt a été modifié en conséquence. Normalement c'est CMD.EXE, mais effectivement il vaut mieux utiliser GetEnv.

    Deuxième problème : comme expliqué ici, le gros problème c'est le manque de mémoire conventionnelle (en dessous des 640Ko du DOS) pour faire tourner un processus externe. Il faut faire baisser la mémoire utilisée par le programme Pascal, et dans le cas de XP, la faire baisser drastiquement avec $M.

    Troisième problème : toujours faire précéder une commande de la directive /C.

    Ce qui nous donne le code suivant, qui fonctionne très bien chez moi (j'ai testé) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    program LancerBatch;
    {$M 16384,0,100000}
     
    uses dos,crt;
     
    begin
     ClrScr;
     SwapVectors;
     Exec(GetEnv('COMSPEC'),'/C TEST.BAT');
     SwapVectors;
     Writeln(DosError);
     readln
    end.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 107
    Points : 57
    Points
    57
    Par défaut
    Et bien, merci infiniment mister CapJack,

    ceci fonctionne !

    Sauf qu'à la place de test.bat j'ai mis le chemin du fichier bat et c'est ok.

    Et bien, rien à dire et encore merci

  9. #9
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 312
    Points
    4 312
    Par défaut
    Ah oui c'était dans la FAQ

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA] erreur d'acces a la liste de references
    Par amine15534 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/02/2007, 14h27
  2. [ERREUR MySQL] Acces denied
    Par Alexlesilex dans le forum Requêtes
    Réponses: 5
    Dernier message: 15/05/2006, 14h33
  3. []Erreur d'accès à la Base de registres
    Par oulai_evado dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/12/2005, 13h59
  4. Erreur d'acces a une base de donnees: idapid32.dll
    Par mevellea dans le forum Bases de données
    Réponses: 3
    Dernier message: 23/10/2005, 19h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo