|
Dernière réponse | |
---|---|
Sujet : [c/c++] Lancer un programme a partir d'un programme en C | |
thunderbird54 | up |
Aperçu |
---|
Vue Rapide de la discussion |
---|
thunderbird54 | up |
thunderbird54 | non je l'ai enleve,
pas de probleme a la compilation mais a l'execution il me dit commande incorrecte et je me demandais si ce n'tait pas a cause du /0 a la fin de la chaine system ne comprends peut etre pas ca? |
antp | le sprintf met un \0 a la fin donc c'est pas le probleme...
c'est quoi qui marche pas exactement ? c'est pas par hasard à cause de ton int system(); ? |
thunderbird54 | j'ai reussi a tester avant de rentrer chez moi
et ca ne marche pas, tjs la meme erreur. je me demande si ca n'est pas du aux caracteres \0 contenu a la fin de temp. Qu'en penses tu? Ne devrait-on pas faire quelques arrangement dans la commande system(). quand je mets system(temp), que comprends le compilateur si temp = "net send backus08 texte"? |
thunderbird54 | je v regarder ca chez moi
des que je rentre je te dit si ca marche Merci |
antp | tes scanf sont bizarres, &text[0] c un peu lourd. Et pour le message ca marche pas si y a des espaces avec le scanf :
|
thunderbird54 | alors pour scanf je savais pas, peut tu expliciter davantage la fonction donc tu me parles
pour la declaration, eh bas c un truc que g trouve comme ca! avant ca ne marchait pas et maintenant que j'ai rajoute la ligne et bien ca marche! |
thunderbird54 | j'ai fait une nouvelle version
qui utuilise s au lieu de c hd c pour short int, donc comme j'ai mis int c donc d que je dois utiliser, mais ca ne change pas grand chose nouvelle version qui devrait marcher mais qui ne marche pas, je ne c pas pourquoi. Alors docteur? pas d'erreur a la compilation mais une erreur lors de l'execution : commande incorrecte void main(void) { int nbfois,i,touche; char lettre; char temp[150]="net send ",ordi[10],texte[140]; int system(); printf("\n Sur quel ordinateur voulez vous que le message s'affiche?" ); scanf("%s",&ordi[0]); fflush(stdin); printf("\n Combien de fois voulez vous lancer net send?" ); scanf("%d",&nbfois); fflush(stdin); printf("\nQue voulez vous qu'affiche net send?" ); scanf("%s",&texte[0]);; fflush(stdin); strcat(temp,ordi); strcat(temp," " ); strcat(temp,texte); printf("\n%s \n",temp); for(i=0;i<nbfois;i++) { system(temp); } getch(); } |
antp | le %hd et le %c sont très bizarre.
c'est quoi le h ? et le %c ça marche ? c'est pas %s normalement ? et tu devrais utiliser fgets(texte, sizeof(texte), stdin) plutôt que scanf pour le message, car scanf s'arrête aux espaces... (à moins qu'il ne le fasse pas avec le %c mais je croyais que c'était pour 1 seul caractère %c). et pourquoi faire une déclaration de "int system();" ? [edtdd]--Message édité par antp--[/edtdd] |
thunderbird54 | salut les gars voici l'ebauche du prgm
je c pas gerer les chaine de caractere aidez moi Merci #include <stdio.h> #include <stdlib.h> #include <conio.h> void main(void) { int nbfois,i,touche; char lettre; char temp[150]="net send backus08 texte",ordi,texte; int system(); printf("Sur quel ordinateur voulez vous que le message s'affcihe?" ); scanf("%c",&ordi); printf("Combien de fois voulez vous lancer net send?" ); scanf("%hd",&nbfois); printf("\n Que voulez vous qu'affiche net send?" ); scanf("%c",&texte); for(i=0;i<nbfois;i++) { system(temp); } getch(); } |
[SDF]Poire |
[edtdd]--Message édité par [SDF]Poire--[/edtdd] |
antp | plutot que printf il vaut mieux utiliser perror:
|
Fork | Par exemple, pour lancer le programme TOTO.EXE, tu écris
void main(void) { ... err = system( "TOTO.EXE" ); if(err==-1) printf("Erreur" ); ... } |
antp |
|
thunderbird54 | c dans quel librairie (conio,stdio,...???)
et c quoi la syntaxe |
Fork | system() |
thunderbird54 | je ne c pour l'instant programmer que des prog dos
donc tous ce qui est bouton, api32, gui de windows, je ne c pas utiliser. Alors quelle fonction de quelle librairie dois je utiliser? |
Rebel | Pourquoi tu fais pas tout simplement une interface GUI sous Windows avec lorsque tu cliques sur un bouton, un appel à Net send ??? |
thunderbird54 | 100% dos |
antp | tu veux faire un programme DOS ou un programme Console ?
si tu fais un programme Windows Console ça a le look d'un programme DOS, mais tu peux utiliser les fonctions de l'API Windows... |
LetoII | Si c sous 2000 cherche du côté de la fonction spawn. |
thunderbird54 | Alors je v clarifier les choses:
en gros je suis sous windows2000 mais je programme en mode console donc ce sera un prog dos je suppose que vous connaissez la commande (dos) de w2k net send [nom ordi] ["texte"] alors je veux faire un prog qui me permette : 1 : lancer net send 2 : me permette de specifier le texte et le nombre de fois que je veux lancer la commande Merci alors? system ou shell? |
Carbon_14 | Sous DOS, c'est bien system, de mémoire (:)).
C'est pas précisé, d'où le flou. :D |
LetoII | si c sous dos c pas la peine de se casser la tête c la commande system il me semble |
juju_le_barbare |
|
Carbon_14 | Pour passer des paramètres, il suffit de fabriquer la chaîne qui sera concaténée à la commande.
Si on veut lancer TOTO.EXE avec les paramètres dudu.bid -c +h, on fabrique la chaîne "TOTO.EXE dudu.bid -c +h" qu'on passe à ShellExecute. Je sais pas si le post du même sujet (y a qq mois) est trouvable par "recherche". On peut attendre que le prog soit terminé, ou continuer, ... |
godbout | faut aller voir dans le msdn http://msdn.microsoft.com y a system, execl ou des trucs comme ca je crois |
flo850 | si le nom du prog et les arg sont constant , syste doit marcher. |
thunderbird54 | je suis plutot c
comment aller voir shellexecute et createprocess je precise que le prgm que je veux lancer est un prgm dos et que j'aimerais lui passer des parametre |
flo850 | la commande system est pas mal .
tu es sous windows? sinon sous linux , exec est tres pratique |
godbout | va voir dans shellExecute ou CreateProcess |
thunderbird54 | Lancer un programme a partir d'un programme en C
comment faut-il faire? Merci |