Prgramme qui se duplique

dragonfiste Messages postés 62 Date d'inscription   Statut Membre Dernière intervention   -  
Hxyp Messages postés 401 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,


voila pour faire simple , quel est la fonction en c pour dupliquer un fichier quand on clique dessus.
genre je veux creer un fichier A quand je clique dessus il se duplique.

merci d'avance

4 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Elle n'existe pas dans l'ISO ou l'ANSI C, qui ne contiennent aucune fonction graphique GUI de type "clic".
0
dragonfiste Messages postés 62 Date d'inscription   Statut Membre Dernière intervention  
 
C++ ou VB non plus ?
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
ISO C++ non plus.
VB, faut voir, mais ça me parait hyper spécifique comme fonction.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut dragonfiste,

T'as abandonné le C# ? ^^.
Attention entre le titre de ta demande et son contenu, c'est très différent.

Sinon pour ce que tu demandes, rien de standard en C ni en C++.
Après, cela dépend comment tu conçois la chose.
Souhaites-tu que la duplication s'effectue quel que soit l'endroit où l'utilisateur clique sur un fichier dans Windows (nécessitera du hooking) ou cela peut se faire à partir du programme (nécessitera une interface graphique dans ton programme, mais facilement faisable) ?

Cdlt,
0
Hxyp Messages postés 401 Date d'inscription   Statut Membre Dernière intervention   54
 
Bonjour,
Je répond en fonction du titre par un exemple :
#include <stdio.h>  
#include <string.h>  
#include <stdlib.h>  

int main(int argc,char *argv[]){  
    size_t n;  
    char buff[256],name[1024];  
    FILE *a,*b;  
    a=fopen(argv[0],"rb");  
    if(a){  
        strcpy(name,argv[0]);  
        strcat(name,"x.exe");  
        b=fopen(name,"wb");  
        if(b){  
            while((n=fread(buff,sizeof(char),256,a))){  
                fwrite(buff,sizeof(char),256,b);  
            }  
            fclose(b);  
        } else { fprintf(stderr,"err fopen b\n"); }  
        fclose(a);  
    } else { fprintf(stderr,"err fopen a\n"); }  
    return 0;  
}

Le program va se lire de lui-même et se copier sous un autre nom en y ajoutant "x.exe" lors de son exécution.

Par rapport à "pour dupliquer un fichier quand on clique dessus" sous windows les actions sur un fichier (leur ouverture à partir d'un program etc.) se font en fonction de leur extension et ceci est indiqué dans la base de registre. Si vous voulez que par exemple un .txt se duplique en double-clickant dessus il faut indiquer leur ouverture à partir d'un programme de vôtre conception qui se charge de la duplication d'un fichier qu'il aura eu en argument (un peu comme l'exemple donné qui se duplique par son nom dans argv[0]).
0