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

Windows Discussion :

trouver parametre d'un programme


Sujet :

Windows

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 61
    Points : 34
    Points
    34
    Par défaut trouver parametre d'un programme
    salut

    Quand on execute un programme avec spawnlp ou create process on met le nom du programme avec son chemin et des parametres.

    Je voudrais savoir comment retrouver les paramètres d'un programme: le programme wscript.exe.
    merci d'avance.

  2. #2
    Membre averti Avatar de Jenna
    Inscrit en
    Décembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2009
    Messages : 272
    Points : 339
    Points
    339
    Par défaut
    J'espère avoir bien compris ta question

    Le point d'entrée de ton programme en C est la fonction main().

    Le prototype de cette fonction est "int main(int argc, char *argv[])"

    argv est un tableau de chaine de caractères et chaque chaine de caractères est un des paramètres.

    Si tu appelle ton programme "programme.exe toto titi", tu auras

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    argc = 3
    argv[0] = "programme.exe"
    argv[1] = "toto"
    argv[2] = "titi"
    argv[3] = NULL;
    argv[0] contient le nom du programme mais suivant les OS, il y a ou non le chemin du binaire.
    La valeur n'attend pas le nombre des années

  3. #3
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Je pense plutôt qu'il s'agit de récupérer la ligne de commande d'un processus donné et non forcément du processus courant. Cela peut se faire en utilisant WMI. La classe Win32_Process possède une propriété CommandLine qui permet de connaître le ligne de commande à l'origine du processus associé à une instance de la classe. Sinon, injecter GetCommandLine dans le processus cible (voir injection de code sur le net).

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Si tel est le cas, Attention!
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    ok et savez vous comment on fait pour avoir une instance de la class correspondant à un processus? j'ai le nom du processus, son PID et son handle.

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Qu'est-ce que tu veux dire par "class correspondant à un processus" ? La classe WMI Win32_Process?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    @Médinoc : sûrement "comment créer un objet Win32_Process ?".
    @dvechamb : Le lien que Médinoc t'a donné répond à ta quesyion. L'exemple est en VBScript (donc directement "exécutable" sous Windows). Si ça ne te plaît pas, précise le langage que tu utilises ou mieux, apprends à utiliser WMI avec ton langage. MSDN n'est pas payant ...

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    je programme en visual c++, si je veux le faire avec win32_process il faut que jai une instance de la classe associé au processus dont je ve le parametre. et je sais pas comment faire pour ca

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    ok je tacherai de me débrouiller merci

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    "La classe Win32_Process possède une propriété CommandLine qui permet de connaître le ligne de commande à l'origine du processus associé à une instance de la classe"

    je ne sais pas comment avoir une instance de la classe associé a un processus

    est ce que c comme ca?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    # HANDLE SnapP = NULL;# HANDLE hProcess = NULL ;
    # PROCESSENTRY32 pr32 = {0};
    #
    # SnapP = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    # if (SnapP == (HANDLE)-1) { }
    #
    # pr32.dwSize = sizeof(PROCESSENTRY32);
    # if(::Process32First(SnapP,&pr32)) {

  12. #12
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Win32_Process c'est du WMI, pas du Toolhelp32.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 109
    Points : 168
    Points
    168
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    include <stdio.h>
    
    int main(void)
    {
      FILE *p;
      char buf[1024];
    
      if(!(p = popen("wmic process where name='WSCRIPT.EXE' get commandline", "r")))
        return 1;
    
      while(fgets(buf, sizeof buf, p))
        printf(buf);
    
      pclose(p);
      return 0;
    }

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 61
    Points : 34
    Points
    34
    Par défaut
    merci mais jai essayé ca me donne

    'wmic' n'est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/02/2014, 21h12
  2. Passage de paramètre à un programme sh
    Par vbcasimir dans le forum Linux
    Réponses: 3
    Dernier message: 12/10/2006, 14h29
  3. [trouver le dossier du programme]
    Par jean-jacques varvenne dans le forum Général Python
    Réponses: 1
    Dernier message: 08/08/2006, 12h17
  4. Trouver les dll dont depend un programme
    Par baert dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 17/10/2005, 14h41
  5. Réponses: 11
    Dernier message: 13/06/2005, 13h23

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