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 :

Problème avec Shellexecute


Sujet :

Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 162
    Points : 124
    Points
    124
    Par défaut Problème avec Shellexecute
    Bonjour,
    J’aimerais récupérer dans un fichier les processus en cours sous Windows en lançant taskmgr.exe avec une commande Shellexecute sous Delphi.
    Mais ça ne fonctionne pas.
    Même en mode console la commande « taskmgr.exe > fichier.txt » crée un fichier vide alors que le gestionnaire des tâches se lance bien.
    Si vous avez une idée, je suis preneur !
    Merci.

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par Teddy Voir le message
    J’aimerais récupérer dans un fichier les processus en cours sous Windows en lançant taskmgr.exe avec une commande Shellexecute sous Delphi.
    Mais ça ne fonctionne pas.
    Même en mode console la commande « taskmgr.exe > fichier.txt » crée un fichier vide alors que le gestionnaire des tâches se lance bien.
    Si vous avez une idée, je suis preneur !
    1. Eviter de passer par une commande tiers via ShellExecute
    2. Lire la http://delphi.developpez.com/faq/?pa...ocessus-actifs
    Philippe.

  3. #3
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Entièrement d'accord avec PH. B., si toutefois tu veux quand même la liste des processus en ligne de commande c'est tasklist
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 162
    Points : 124
    Points
    124
    Par défaut
    Bonjour,

    @Ph. B.:
    Je m'efforcerai maintenant de penser à visiter la faq avant de poster! Merci pour le lien.
    Par curiosité, quel est l'inconvénient ou le risque d'utiliser shellexecute?

    @Linkin
    Si je n'ai pas de succès avec la solution de Ph. B. (ce qui m'étonnerait), j'essaierai Tasklist.

    Merci à vous deux.

  5. #5
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Il manque dans l'article de la FAQ le nom de l'unité à déclarer :

    @Alcatîz
    J'ai voulu l'ajouter mais je n'ai pas trouvé comment éditer l'article.
    Pourtant je crois me souvenir que je faisais partie des mainteneurs.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  6. #6
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Autrement, pour répondre à la question initiale, le code suivant suivant fonctionne (quoique la solution basée sur l'unité TLHelp32 soit meilleure) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ShellExecute(0, nil, 'cmd.exe', PChar('/c tasklist > tasklist.txt'), nil, SW_HIDE);
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 162
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Autrement, pour répondre à la question initiale, le code suivant suivant fonctionne (quoique la solution basée sur l'unité TLHelp32 soit meilleure) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ShellExecute(0, nil, 'cmd.exe', PChar('/c tasklist > tasklist.txt'), nil, SW_HIDE);
    Merci pour l’info.
    Effectivement, j’ai essayé la procedure de la fac sans succès et sans chercher pourquoi, et j’ai donc utilisé le shellexecute qui fonctionne bien. C’est juste une bidouille pour savoir quel est le processus qui se déclenche par moment, et qui fait monter le processeur au maximum de sa fréquence (temp à 60°). D’où la nécessité d’enregistrer et comparer les processus en cours avant et après le phénomème.

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

Discussions similaires

  1. Problème avec ShellExecute
    Par lou_delphdev dans le forum Web & réseau
    Réponses: 3
    Dernier message: 28/08/2007, 13h59
  2. Problème avec Shellexecute
    Par cincap dans le forum Composants VCL
    Réponses: 10
    Dernier message: 19/08/2007, 23h08
  3. [VBA]Problème avec ShellExecute()
    Par Sunchaser dans le forum SDK
    Réponses: 1
    Dernier message: 24/06/2007, 19h27
  4. Problème avec ShellExecute
    Par Xav++ dans le forum C++Builder
    Réponses: 5
    Dernier message: 29/05/2006, 13h58
  5. Problème avec ShellExecute
    Par SkYsO dans le forum Langage
    Réponses: 7
    Dernier message: 16/11/2005, 16h52

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