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.
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.
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
argv[0] contient le nom du programme mais suivant les OS, il y a ou non le chemin du binaire.
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;
La valeur n'attend pas le nombre des années
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).
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.
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.
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.
@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 ...
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
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.
ok je tacherai de me débrouiller merci
"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)) {
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.
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; }
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager