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

Delphi Discussion :

batch impossible à lancer


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 15
    Par défaut batch impossible à lancer
    Bonjour,

    Je cherche à lancer un batch windows2003 depuis delphi 7.0. J'ai repris les expication de la FAQ avec SellExectute mais ça ne lance pas le batch, et pas d'erreur !

    http://www.developpez.com/delphi/faq...interexecution

    1 - J'ai bien mis le shellAPI dans la clause uses
    2 - DELPHI ne reconnait pas SW_SHOW, mais je peux le remplacer par 0
    3 - Je peux lancer un .exe comme ça:

    ShellExecute(0,'OPEN','C:\7-Zip\7zFM.exe', Nil, Nil, 0);

    4 - Mais pas un batch, enfin pas comme ça:

    ShellExecute(0,'OPEN','C:\batch.bat', Nil, Nil, SW_SHOW);

    ShellExecute(0,'OPEN','C:\WINDOWS\system32\cmd.exe c:\batch.bat', Nil, Nil, SW_SHOW);

    ShellExecute(0,'open',PChar(GetEnvironmentVariable('ComSpec')),
    '/C c:\batch.bat,'c:\',0);

    rien ne marche, alors si quelq'un peux m'aider merci bien !

  2. #2
    Membre éprouvé
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Par défaut
    Je n'ai jamais lancé de batch avec shellexecute

    Mais dans ton batch, s'il y a un lancement de programme, il est possible que le batch passe à la suite, se ferme sans attendre la fin de l'appli lancée, auquelle cas, pour peu que ce soit aussi une appli dos est fermée aussi prématurément.

    Si c'est le cas, dans ton batch, essaye de placer un "CALL " devant le lancement de ton prog. il a pour effet d'attendre la fin du prog lancé, avant de passer à la suite des commandes.

    Sinon bah... j'aurais essayé
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  3. #3
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    J'ai testé la méhode ci dessous et ca marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute(Application.Handle,'open',PChar(GetEnvironmentVariable('ComSpec')),'/C c:\bin\batch.bat','c:\',SW_SHOW);
    Dans ton fichier Batch.bat, après avoir tout exécuté, met un pause. Comme ca, la console reste ouverte et tu peux voir les erreurs s'il y en a!

  4. #4
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 15
    Par défaut
    Ok, j'ai ajouté une pause dans mon batch, et s'il était lancé il me crérait un répertoire,donc je pourrais le voir.

    Par contre delphi avec la méthode que tu as testé, mon delphi ne reconnait pas l'identificateur "Application.handle"(probablement car je code une dll ISAPI), donc je le remplace par "0", j'ai vu qu'on peux le faire dans la FAQ. Après c'est SW_SHOW qui n'est pas identifié, il ne le reconnait pas ! Je peux pas compiler, alors je lui donne un entier, 0 pour HIDDEN... ou 5 ( a priori == SH_SHOW) et il ça compile mais il ne se passe rien à l'execution.

  5. #5
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 15
    Par défaut
    ShellExecute(0,'open',PChar(GetEnvironmentVariable('ComSpec')),'/C c:\batch.bat','c:\',0);

  6. #6
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut

    La constante SW_SHOW est définie dans l'unit Windows (SW_SHOW = 5).
    L'objet TApplication est définie dans l'unit Forms.

    @+

  7. #7
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    C'est bizzard!

    En utilisant exactement la même ligne de commande que la tienne c'est à dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     	ShellExecute(0,'open',PChar(GetEnvironmentVariable('ComSpec')),'/C c:\batch.bat','c:\',0);
    Et en ayant dans mon fichier batch.bat (qui se trouve dans C:\) ceci :

    Il me crée bien mon dossier Truc à la racine du disque (C:\).
    L'erreur vient-elle pas d'ailleurs?
    Ton fichier batch par exemple?

Discussions similaires

  1. commande DOS impossible à lancer via fichier BATCH
    Par siekken dans le forum Scripts/Batch
    Réponses: 11
    Dernier message: 11/03/2009, 13h24
  2. [Applet] Impossible à lancer
    Par JamesP dans le forum Applets
    Réponses: 5
    Dernier message: 15/11/2006, 20h20
  3. Impossible lancer application en root
    Par alexp dans le forum Administration système
    Réponses: 15
    Dernier message: 26/04/2006, 22h52
  4. Réponses: 3
    Dernier message: 11/01/2006, 15h39
  5. [batch]comment lancer un excel avec son mot de passe?
    Par victor.ward dans le forum Windows
    Réponses: 1
    Dernier message: 05/12/2005, 10h10

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