Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1093 connectés 

  FORUM HardWare.fr
  Programmation
  C

  execution de programme

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

execution de programme

n°1311592
ciriak
Posté le 22-02-2006 à 15:58:20  profilanswer
 

Salut,
 
Je cherche a faire une programme en C qui fait des copie de fichier j'utilise les commande suivante:

Code :
  1. system("copy  /y  jeu\\pics\\7\\track10_visible_01.jpg  jeu\\pics\\track1" );
  2. system("copy  /y  jeu\\pics\\7\\track11_01.gif  jeu\\pics\\track1" );
  3. system("copy  /y  jeu\\pics\\7\\track12_01.gif  jeu\\pics\\track1" );


Le problème c'est qu'à chaque commande il m'ouvre (pendant une fraction de seconde) une fenetre DOS (mais c'est quand même casse pied), je voulait savoir s'il y avait moyen de ne pas les voir ?
 
Autre question: je voudrais ouvrir une page internet à partir du programme, comment faire ?
 
Merci A++

mood
Publicité
Posté le 22-02-2006 à 15:58:20  profilanswer
 

n°1311604
h4rold
Posté le 22-02-2006 à 16:07:22  profilanswer
 

pour la fenetre jen ai aucune idée pour la page internet tu peux faire ixplore.exe url ou firefox.exe url ca devrait marcher.

n°1311606
Sve@r
Posté le 22-02-2006 à 16:12:10  profilanswer
 

ciriak a écrit :

Salut,
 
Je cherche a faire une programme en C qui fait des copie de fichier j'utilise les commande suivante:

Code :
  1. system("copy  /y  jeu\\pics\\7\\track10_visible_01.jpg  jeu\\pics\\track1" );
  2. system("copy  /y  jeu\\pics\\7\\track11_01.gif  jeu\\pics\\track1" );
  3. system("copy  /y  jeu\\pics\\7\\track12_01.gif  jeu\\pics\\track1" );


Le problème c'est qu'à chaque commande il m'ouvre (pendant une fraction de seconde) une fenetre DOS (mais c'est quand même casse pied), je voulait savoir s'il y avait moyen de ne pas les voir ?
 
Autre question: je voudrais ouvrir une page internet à partir du programme, comment faire ?
 
Merci A++


 
Pourquoi ne pas faire une vraie copie en C ?

#include <stdio.h>
int main(int argc, char *argv[])
{
    FILE *in;
    FILE *out;
    int c;
 
    in=fopen(argv[1], "rb" );
    out=fopen(argv[2], "wb" );
 
    while ((c=fgetc(in)) != EOF)
           fputc(c, out);
 
    fclose(in);
    fclose(out);
    return 0;
}


 
Tu appeles ce programme en lui passant en paramètre les noms de tes deux fichiers. Tu peux rajouter des contrôles sur argc pour être certain qu'il y a bien 2 arguments et sur la réussite de chaque "fopen" (c'est d'ailleurs conseillé) mais la structure de base est faite...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1311613
jagstang
Pa Capona ಠ_ಠ
Posté le 22-02-2006 à 16:15:45  profilanswer
 

super, un batch en C

n°1311622
ciriak
Posté le 22-02-2006 à 16:25:12  profilanswer
 

Dans mon programme, les adresses sont defini au cours du programme, pas passer en arguments.
Pourrai tu me mettre des commentaire sur le programme pour savoir a quoi correspond chaque fonction stp ?

n°1311644
Emmanuel D​elahaye
C is a sharp tool
Posté le 22-02-2006 à 16:43:23  profilanswer
 

ciriak a écrit :

Dans mon programme, les adresses sont defini au cours du programme, pas passer en arguments.
Pourrai tu me mettre des commentaire sur le programme pour savoir a quoi correspond chaque fonction stp ?


Euh, c'est carrément élémentaire. Si tu ne sais pas lire ce code, commence par apprendre le langage C.
http://mapage.noos.fr/emdel/images/c_warn.png


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1311654
ciriak
Posté le 22-02-2006 à 16:56:37  profilanswer
 

Emmanuel Delahaye: Pour apprendre il faut poser des questions, si tu ne veux pas partager ne t'ettone pas que tu n'ai pas de reponse un jour.
 
j'essairai le programme ce soir...
 
Sinon pour ouvrir la page internet, si quelqu'un sais ??

n°1311657
skeye
Posté le 22-02-2006 à 16:59:47  profilanswer
 

ciriak a écrit :

Emmanuel Delahaye: Pour apprendre il faut poser des questions, si tu ne veux pas partager ne t'ettone pas que tu n'ai pas de reponse un jour.


Non, pour apprendre il faut commencer par se documenter et savoir chercher les réponses à des questions simples seul. Si pour un bout de code aussi simple t'es pas capable de chercher dans la doc pour comprendre tout seul comment ça marche, t'es pas près de rpogrammer quoi que ce soit tout seul.


---------------
Can't buy what I want because it's free -
n°1311674
ciriak
Posté le 22-02-2006 à 17:13:56  profilanswer
 

je n'est pas le temps de faire des recherche car le suis au boulot et je n'ai pas internet à mon logement, donc je cherchait la solution qui me permettait d'être le moins possible sur le net (ce que je n'ai en théorie pas le droit de faire).
 
"Merci de votre calaboration" (clin d'oeil "au cinquième élément" )

n°1311701
nargy
Posté le 22-02-2006 à 17:34:55  profilanswer
 

Bof, il faut bien débuter un jour...
 
Pour indiquer que le programme a besoin des fonctions d entrée sortie standart (stdio):
#include <stdio.h>
 
fonction principale:
int main(int argc, char *argv[])
 
déclarer l utilisation de deux fichier et 1 caractère:
    FILE *in;
    FILE *out;
    int c;
 
ouvrir les fichiers in et out
    in=fopen(argv[1], "rb" );
    out=fopen(argv[2], "wb" );
 
lire un caractère, si ce caractère n est pas EndOfFile
    while ((c=fgetc(in)) != EOF)
ecrire le caractère dans fichier out
           fputc(c, out);
 
fermer les fichiers  
    fclose(in);
    fclose(out);
 
fin
    return 0;

mood
Publicité
Posté le 22-02-2006 à 17:34:55  profilanswer
 

n°1311708
Emmanuel D​elahaye
C is a sharp tool
Posté le 22-02-2006 à 17:45:14  profilanswer
 

ciriak a écrit :

Emmanuel Delahaye: Pour apprendre il faut poser des questions,


Non. Pour apprendre, il faut ouvrir un livre de C ou un tutoriel et se former.  

Citation :

Sinon pour ouvrir la page internet, si quelqu'un sais ??


On t'a déjà répondu :  


   system ("ixplore.exe url_qui_va_bien" );
   system ("firefox.exe url_qui_va_bien" );


etc. T'arrives à comprendre ou il faut commenter ?

Message cité 1 fois
Message édité par Emmanuel Delahaye le 22-02-2006 à 19:38:00

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1311772
skelter
Posté le 22-02-2006 à 19:28:14  profilanswer
 

il manque le controle de la valeur retour des fopen
 
ciriak > pourquoi faire ca en C ?

n°1311827
Sve@r
Posté le 22-02-2006 à 21:10:35  profilanswer
 

ciriak a écrit :

Dans mon programme, les adresses sont defini au cours du programme, pas passer en arguments.
Pourrai tu me mettre des commentaire sur le programme pour savoir a quoi correspond chaque fonction stp ?


Désolé, je sais que les commentaires sont importants mais je ne pensais pas que t'en aurais besoin pour lire un code aussi simple. Bon Nargy a donné des commentaires très corrects. Sinon voici les miens...

// Inclusion des définitions des structures aptes à traiter des fichiers
#include <stdio.h>
 
// Programme principal
int main(
    int argc,                          // Nb d'arguments
    char *argv[])                   // Tableau des arguments
{  
    FILE *in;                         // Ptr sur fichier à lire
    FILE *out;                      // Ptr sur fichier à écrire
    int c;                             // Caractère lu/écrit
 
    in=fopen(argv[1], "rb" );     // Ouverture argument n° 1 en lecture
    out=fopen(argv[2], "wb" ); // Ouverture argument n° 2 en écriture
 
    while ((c=fgetc(in)) != EOF) // Tant que je peux lire un caractère du fichier à copier
           fputc(c, out);            // J'écris ce caractère dans le fichier copié
 
    fclose(in);                      // Fermeture fichier à lire
    fclose(out);                    // Fermeture fichier à écrire
   
    return 0;                        // Je quitte le programme en disant '"tout va bien"
}


 

Emmanuel Delahaye a écrit :


   system ("ixplore.exe url_qui_va_bien" );
   system ("firefox.exe url_qui_va_bien" );


etc. T'arrives à comprendre ou il faut commenter ?


Hum... et dire que j'ai failli lui conseiller d'ouvrir une socket...
On en restera là je crois  :D


Message édité par Sve@r le 22-02-2006 à 21:30:58

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1311838
skelter
Posté le 22-02-2006 à 21:32:35  profilanswer
 

Sve@r >  tu dois également controler le retour des fonctions fopen et fputc

n°1311842
Emmanuel D​elahaye
C is a sharp tool
Posté le 22-02-2006 à 21:39:36  profilanswer
 

skelter a écrit :

Sve@r >  tu dois également controler le retour des fonctions fopen et fputc


 
Sve@r  

Citation :

Tu peux rajouter des contrôles sur argc pour être certain qu'il y a bien 2 arguments et sur la réussite de chaque "fopen" (c'est d'ailleurs conseillé)


Message édité par Emmanuel Delahaye le 22-02-2006 à 21:39:58

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1311845
Sve@r
Posté le 22-02-2006 à 21:41:00  profilanswer
 

skelter a écrit :

Sve@r >  tu dois également controler le retour des fonctions fopen et fputc


Exact (quoique pour "fput" je pense que c'est du luxe). Mais je l'ai dit dans mon tout premier post; je donnais juste la base de la structure du programme en conseillant un contrôle sur "argc" et "fopen". En fait, j'avais pas vraiment le temps de fignoler...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1311847
skelter
Posté le 22-02-2006 à 21:41:47  profilanswer
 

ok j'ai rien dis  :sleep:

n°1311851
Sve@r
Posté le 22-02-2006 à 21:43:38  profilanswer
 

skelter a écrit :

ok j'ai rien dis  :sleep:


Mais si, vaut mieux trop en dire que pas assez  :)  :wahoo:  :hello:  


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1311994
ciriak
Posté le 23-02-2006 à 10:01:40  profilanswer
 

merci pour les commentaire
 
merci pour la page internet
(faut juste que le iexplore.exe ou firefox.exe soit dans le dossier dans lequel est éxecuter le programme compiler en C)

n°1312004
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-02-2006 à 10:16:17  profilanswer
 

ciriak a écrit :

merci pour les commentaire
 
merci pour la page internet
(faut juste que le iexplore.exe ou firefox.exe soit dans le dossier dans lequel est éxecuter le programme compiler en C)


Pas besoin, sinon mettre le chemin entier (entre doubles quotes car il peut y avoir des caractères bizarres genre espace...)
 
Rappel : en C, une double quote se code \" dans une chaine de caractères...
 

printf ("hello\n" ); /* -> hello */
printf ("\"hello\"\n" ); /* ->"hello" */


Ce qui est rapidement illisible. Je suggère
 

#define DQ "\""
 
printf (DQ "hello" DQ "\n" ); /* ->"hello" */


Message édité par Emmanuel Delahaye le 23-02-2006 à 10:16:57

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1312015
ciriak
Posté le 23-02-2006 à 10:35:02  profilanswer
 

Le problème c'est que je veux pouvoir passer le programme a d'autre et s'il n'ont pas le même chemin, ça bug...

n°1312020
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-02-2006 à 10:38:28  profilanswer
 

ciriak a écrit :

Le problème c'est que je veux pouvoir passer le programme a d'autre et s'il n'ont pas le même chemin, ça bug...


Comme je te l'ai dit, essaye déjà sans le chemin. Il est possible que le chemin implicite d'une application aussi importante soit connue du système. Sinon, prévoir un fichier de config, une clé du registre... Programmation d'application classique...
 
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1312028
ciriak
Posté le 23-02-2006 à 10:50:42  profilanswer
 

Je pensais, a tord, qu'une page enregistrer sur le l'ordi se lanssait comme une page internet en tapant l'adresse de la page à partir du dossier duquel est lancer l'aplication mais bug...
 
Je travail hors connexion, j'ai une page internet enregistrer dans un sous dossier de l'endroit ou est lancer l'apllication et sans passer par la racine de l'arborécence, je ne trouve pas...

n°1312636
breizhbugs
Posté le 23-02-2006 à 20:55:30  profilanswer
 

Salut,
Si sous windows:
Pour la copie:
http://msdn.microsoft.com/library/ [...] pyfile.asp

Code :
  1. #include <windows.h>
  2. ...
  3. CopyFile(Fichier_origine, fichier_destination, FALSE);


 
Pour la page HTML:
http://msdn.microsoft.com/library/ [...] xecute.asp

Code :
  1. #include <shellapi.h>
  2. // import shell32.lib
  3. ...
  4. ShellExecute(handle, "open", <chemin_vers_fichier.html>, NULL, NULL, SW_SHOWNORMAL);


Message édité par breizhbugs le 23-02-2006 à 20:56:20
n°1312886
ciriak
Posté le 24-02-2006 à 11:09:11  profilanswer
 

La copie fonctionne très bien, Merci
 
Mais l'execution de ShellExecute bug
il ne veux pas complilé le programme à cause d'erreur trouvé dans shellapi.h
par exemple: 97   C:\Program Files\Dev-Cpp\include\shellapi.h    'DWORD' is used as a type, but  


Message édité par ciriak le 24-02-2006 à 11:14:34
n°1312944
db__
spécialiste de l'à peu près
Posté le 24-02-2006 à 12:58:05  profilanswer
 

Bonjour

Citation :

Je pensais, a tord, qu'une page enregistrer sur le l'ordi se lanssait comme une page internet en tapant l'adresse de la page à partir du dossier duquel est lancer l'aplication mais bug...
 
Je travail hors connexion, j'ai une page internet enregistrer dans un sous dossier de l'endroit ou est lancer l'apllication et sans passer par la racine de l'arborécence, je ne trouve pas...


Citation :

il ne veux pas complilé le programme à cause d'erreur trouvé dans shellapi.h


Avant de compiler un programme il faut le relire.
Avant de poster un message, c'est aussi très bien de se relire.
J'ai toujours été nul en orthographe mais tout de même pas à ce point.

n°1312945
ciriak
Posté le 24-02-2006 à 13:00:04  profilanswer
 

ça fonctionne sans le handle et pas besoin de shellapi.h
 
ShellExecute(NULL, "open", "jeu\\moto 3.html", NULL, NULL, SW_SHOWNORMAL);
 
reste plus qu'à le tester sur une autre machine...


Message édité par ciriak le 24-02-2006 à 13:00:39
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  execution de programme

 

Sujets relatifs
lancer l'execution d'un programme externe genre word excel etc...[Résolu]pb d'execution de programme
Execution d'un programme en C++acquisition d'image d'interface GTK pendant l'exécution d'un programme
Execution d'un programme C dans du javaactivation d'une feuille pour l'execution de la suite du programme
Savoir si un programme est en cours d'éxécutionVBA EXCEL attendre l'execution du programme .exe
[JBuilder] Execution d'un programme (noob inside)problème execution programme C sous windows
Plus de sujets relatifs à : execution de programme


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR