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

Composants VCL Delphi Discussion :

Problème avec JvCreateProcess


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    868
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 868
    Par défaut Problème avec JvCreateProcess
    bonjour,

    est ce que quelqu'un connait le composant "JvCreateProcess" de la JVCL

    je voudrais lancer un programme externe qui fonctionne dans une fenetre Dos
    et lui affecter une chaine de commande
    je n'arrive pas a placer cette chaine de commande avec ce composant ?

    jusqu'a présent j'utilisais Shellexecute() et ca fonctionne très bien mais on ne maitrise pas la fin du process : je veux savoir si le programme lancé est fini ou pas.



    merci

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Billets dans le blog
    1
    Par défaut
    Pour savoir si un programme a terminé son exécution, tu peux utiliser l'API WaiForSingleObject en conjonction avec ShellExecute. Si ça peut te dépanner

  3. #3
    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
    Citation Envoyé par Aka Guymelef Voir le message
    Pour savoir si un programme a terminé son exécution, tu peux utiliser l'API WaiForSingleObject en conjonction avec ShellExecute. Si ça peut te dépanner
    Je plussoie, tu as un exemple dans la FAQ

    @+

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    868
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 868
    Par défaut essai
    salut

    j'ai fait un essai avec l'exemple de la FAQ et ca fonctionne

    maintenant pour l'adapter a mon probleme ? il doit y avoir une erreur de syntaxe dans les parametre du bout de code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     If CreateProcess(Nil,
      '"pdftk.exe" "c:\testblend\f1.pdf" + " " + "c:\testblend\f1.pdf" + " cat output " + "c:\testblend\q2000.pdf"',
      Nil, Nil, False,0, Nil, Nil, StartInfo,ProcessInfo) Then
    pdftk.exe : soft pout fusionner des pdf
    syntaxe:
    pdftk.exe fichier1.pdf fichier2.pdf cat output fusion.pdf
    dans l'exemplede code je dois fusionner le fichier f1.pdf avec le f2.pdf pour faire un fichier q2000.pdf en résultat

    le soft se lance bien mais erreur de syntaxe .......et pas de fusion

    A+

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Billets dans le blog
    1
    Par défaut
    Si je lis bien la syntaxe à envoyer en ligne de commande, tu as des '+' en trop à priori. Je ne sais pas si tu as voulu faire de la concaténation de texte mais je pense que tu t'es un peu perdu entre les " et les '.

    Du coup moi je ferais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If CreateProcess(Nil,
      '"pdftk.exe" "c:\testblend\f1.pdf" "c:\testblend\f1.pdf" cat output "c:\testblend\q2000.pdf"',
      Nil, Nil, False,0, Nil, Nil, StartInfo,ProcessInfo) Then
    Remarque je ne suis pas sûr que mettre le nom de l'exécutable entre guillemet soit une bonne idée, à tester.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    868
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 868
    Par défaut ca marche
    bonjour,

    merci pour la syntaxe !!! ca fonctionne

    maintenant pour aller plus loin, il faudrait remplacer les chemins des noms de fichier par une variable string et là problème ? ca ne marche plus !
    peut etre qu'il faut passer par un pchar ? ou bien la fonction quotedstr() ?




    A+

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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