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;
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.
"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.
Partager