Forum Clubic

VC++ - executer un programme avec des parametres - RESOLU

Slt,

Comment faire pour executer avec VC++ un programme avec des arguments en entrées?

ShellExecute

CreateProcess???

Ca dépend ce que tu veux. Je crois que ShellExecute équivaut à ce qu’on met dans la boîte de dialogue “Executer”. CreateProcess crée aussi un processus avec argument mais je crois que c’est cette fonction est plus complète. Et tu peut récupérer le handle du processus.

Il y a aussi CreateProcessAsUser pour ouvrir un processus en tant que un autre utilisateur que celui actuellement connectée à la machine (qui clique sur le programme).

Mais bon ShellExecute et CreateProcess sont complémentaire. Non?

Oui, tout dépend de ce que tu veux faire, un ShellExecute suffit dès lors que tu ne souhaites qu’éxécuter une appli externe, sans te préoccuper de ce qu’elle fait.
Avec CreateProcess, tu pourras agir sur l’appli que tu viens de lancer.

Ba j’ai compilé un programme sous VC++ dans un projet, ensuite le programme doit prendre 9 arguments d’entrée pour s’exécuter normalement, parmi tous il y a des chaines de caractères pour désigner des noms de fichiers et des nombres.
Exemple:

mon_prog.exe fichier1 fichier2 10 11 12 13 14 fichier3 fichier4

Oui, ça, on l’avait compris :paf:
Maintenant, reste à savoir si tu as essayé nos propositions :sarcastic:

Sous Visual C++ 6.0:

Projects \ Settings (ALT+F7) \ Debug \ Program Arguments

Sous Visual .NET:

Clique-droit sur le projet / Properties / Debugging / Command Arguments

Ah ok, je viens de comprendre, si ton appli est une de type console msdos, tu devrais avoir un prototype main() comme ca :


int main(char argc, char *argv[])

ou encore


int main(char argc, char **argv)

argc = nb de param
argv = tableau des params

Si c’est une appli win32, tu dois avoir ton winmain qui doit ressembler à ca :


int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)

lpCmdLine = chaine des params

wé c un projet de type consoledos, avec argc et argv comme parametre de main.

acidbao -> demain je teste ca
++

[EDIT]C’est bon c’est bien ca. Merci