Bonjour, je souhaite passer des parametres a une application console win32.
J'ai essayé avec shellexecute "nom de l'application", "parametres".. mais
la console s'ouvre et se referme aussitot.
Je ne sais plus comment faire, merci.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Arnold McDonald \(AMcD\)
maby.jacques wrote:
Bonjour, je souhaite passer des parametres a une application console win32. J'ai essayé avec shellexecute "nom de l'application", "parametres".. mais la console s'ouvre et se referme aussitot. Je ne sais plus comment faire, merci.
D'un point de vue programmatique, utilises la ligne de commande. Pour récupérer les paramètres passés en ligne de commande à ton application utilise getCommandLine() et parse les valeurs retorunées. Si tu exécutes biniou.exe /p /x -p +5, tu récupèreras /p /x -p et +5 via GetCommandLine() sous forme d'une liste qu'il te faut toi-même analyser.
Tu peux récupérer aussi via le lpCmdLine du WinMain(). Ou avec les paramètres du main() d'un programme C. Etc. Etc.
-- Arnold McDonald (AMcD) - Help #57/2006
http://arnold.mcdonald.free.fr/
maby.jacques wrote:
Bonjour, je souhaite passer des parametres a une application console
win32. J'ai essayé avec shellexecute "nom de l'application",
"parametres".. mais la console s'ouvre et se referme aussitot.
Je ne sais plus comment faire, merci.
D'un point de vue programmatique, utilises la ligne de commande. Pour
récupérer les paramètres passés en ligne de commande à ton application
utilise getCommandLine() et parse les valeurs retorunées. Si tu exécutes
biniou.exe /p /x -p +5, tu récupèreras /p /x -p et +5 via GetCommandLine()
sous forme d'une liste qu'il te faut toi-même analyser.
Tu peux récupérer aussi via le lpCmdLine du WinMain(). Ou avec les
paramètres du main() d'un programme C. Etc. Etc.
Bonjour, je souhaite passer des parametres a une application console win32. J'ai essayé avec shellexecute "nom de l'application", "parametres".. mais la console s'ouvre et se referme aussitot. Je ne sais plus comment faire, merci.
D'un point de vue programmatique, utilises la ligne de commande. Pour récupérer les paramètres passés en ligne de commande à ton application utilise getCommandLine() et parse les valeurs retorunées. Si tu exécutes biniou.exe /p /x -p +5, tu récupèreras /p /x -p et +5 via GetCommandLine() sous forme d'une liste qu'il te faut toi-même analyser.
Tu peux récupérer aussi via le lpCmdLine du WinMain(). Ou avec les paramètres du main() d'un programme C. Etc. Etc.
-- Arnold McDonald (AMcD) - Help #57/2006
http://arnold.mcdonald.free.fr/
Bertrand Lenoir-Welter
maby.jacques :
Bonjour, je souhaite passer des parametres a une application console win32. J'ai essayé avec shellexecute "nom de l'application", "parametres".. mais la console s'ouvre et se referme aussitot. Je ne sais plus comment faire, merci.
Regarde le help sur STARTUPINFO pour d'éventuels arguments de fenêtrage.
Ensuite, si t'as besoin d'attendre que ton programme se termine avant de passer à la suite, utilise soit WaitForSingleObject(ProcInfo.hProcess,INFINITE) soit plutôt une boucle du genre : while(WaitForSingleObject(ProcInfo.hProcess,100)==WAIT_TIMEOUT) { ...->PumpWaitingMessages(); } qui te permet entre autres de rafraîchir ta fenêtre.
Et pour terminer : CloseHandle(ProcInfo.hThread); CloseHandle(ProcInfo.hProcess);
C'est ce que j'utilise depuis des lustres pour lancer indistinctement des programmes DOS ou Windows depuis une appli, et ça marche sans problème.
maby.jacques :
Bonjour, je souhaite passer des parametres a une application console win32.
J'ai essayé avec shellexecute "nom de l'application", "parametres".. mais
la console s'ouvre et se referme aussitot.
Je ne sais plus comment faire, merci.
Regarde le help sur STARTUPINFO pour d'éventuels arguments de fenêtrage.
Ensuite, si t'as besoin d'attendre que ton programme se termine avant de
passer à la suite, utilise soit
WaitForSingleObject(ProcInfo.hProcess,INFINITE) soit plutôt une boucle
du genre :
while(WaitForSingleObject(ProcInfo.hProcess,100)==WAIT_TIMEOUT)
{
...->PumpWaitingMessages();
}
qui te permet entre autres de rafraîchir ta fenêtre.
Et pour terminer :
CloseHandle(ProcInfo.hThread);
CloseHandle(ProcInfo.hProcess);
C'est ce que j'utilise depuis des lustres pour lancer indistinctement
des programmes DOS ou Windows depuis une appli, et ça marche sans problème.
Bonjour, je souhaite passer des parametres a une application console win32. J'ai essayé avec shellexecute "nom de l'application", "parametres".. mais la console s'ouvre et se referme aussitot. Je ne sais plus comment faire, merci.
Regarde le help sur STARTUPINFO pour d'éventuels arguments de fenêtrage.
Ensuite, si t'as besoin d'attendre que ton programme se termine avant de passer à la suite, utilise soit WaitForSingleObject(ProcInfo.hProcess,INFINITE) soit plutôt une boucle du genre : while(WaitForSingleObject(ProcInfo.hProcess,100)==WAIT_TIMEOUT) { ...->PumpWaitingMessages(); } qui te permet entre autres de rafraîchir ta fenêtre.
Et pour terminer : CloseHandle(ProcInfo.hThread); CloseHandle(ProcInfo.hProcess);
C'est ce que j'utilise depuis des lustres pour lancer indistinctement des programmes DOS ou Windows depuis une appli, et ça marche sans problème.