begin process at 2012 05 28 21:46:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Comment retrouver le programme associé avec l'extension d'un fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment retrouver le programme associé avec l'extension d'un fichier

mardi 13 septembre 2005 à 09:04:59 | Comment retrouver le programme associé avec l'extension d'un fichier

Alcantornet

Bonjour,

J'aimerais savoir comment retrouver le chemin de l'éxecutable associés avec une extension.

J'aimerais une fonction du style GetAssocExe(".txt",exename);, mais je ne sais pas si ça existe.



mardi 13 septembre 2005 à 10:19:27 | Re : Comment retrouver le programme associé avec l'extension d'un fichier

patatalo

Membre Club Administrateur CodeS-SourceS
salut,

tu peux regarder dans la base de registre.
RegOpenKey.
RegQueryValue.

@++
mardi 13 septembre 2005 à 10:46:28 | Re : Comment retrouver le programme associé avec l'extension d'un fichier

Alcantornet

Oui je veux bien mais dans les clés HKEY_CLASSES_ROOT, il y a l'extension avec le type de contenu. il y a bien un OpenWithList mais dedans il pas de chemin complet vers l'exe
mardi 13 septembre 2005 à 11:35:33 | Re : Comment retrouver le programme associé avec l'extension d'un fichier

patatalo

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

la valeur par defaut te donne le nom de la cle a consulter en generale [extention]file
donc ici txtfile, ensuite, tu va dans shell/open/command.

mardi 13 septembre 2005 à 13:22:53 | Re : Comment retrouver le programme associé avec l'extension d'un fichier

Alcantornet

Merci de ton aide.
mardi 13 septembre 2005 à 15:09:07 | Re : Comment retrouver le programme associé avec l'extension d'un fichier

Alcantornet

Pour ceux à qui cela intéresse voici mon code :

#include <stdarg.h>
#include <windef.h>
#include <winbase.h>
#include <Winreg.h>
#include <stdlib.h>

// Fonction qui remplace un occurence dans une chaîne de caractères
char* Replace(const char * fullstring,const char * replace,const char * replaceby){
    char * retfull;
    unsigned int len[3]={strlen(fullstring),strlen(replace),strlen(replaceby)},j;
    for(int i=0;i<=len[0];++i){
        j=0;
        while(fullstring[i+j]==replace[j]){
            ++j;
        }
        if(j==len[1]){
            char temp1[i];
            temp1[i]=0;
            memcpy(temp1,fullstring,i);
                       
            char temp2[len[0]-i-j];
            for(int k=i+j;k<=len[0];++k){
                temp2[k-i-j]=fullstring[k];
           }
           temp2[len[0]-i-j]=0;
           
           retfull = new char[strlen(temp1)+strlen(temp2)+len[2]+1];
           strcpy(retfull,temp1);
           strcat(retfull,replaceby);
           strcat(retfull,temp2);
       }
   }
   return retfull;
}

char* ReadString(HKEY HK, const char * key, const char * name){
    char * valeur;
    HKEY Retour;
    RegOpenKeyEx(HKEY_CLASSES_ROOT,key,0,KEY_ALL_ACCESS,&Retour);

    unsigned long type,taille=0;
    while(ERROR_MORE_DATA == RegQueryValueEx(Retour,name,NULL,&type,(unsigned char *)valeur,&taille)){
        ++taille;
        valeur = new char[taille];
    }   
   
    RegCloseKey(Retour);
   
    if(taille==0) return NULL;
    return valeur;
}

char* GetAssocExe(const char * ext){
    char * appname;
    appname = ReadString(HKEY_CLASSES_ROOT,ext,"");
   
    if(appname==NULL) return NULL;
   
    unsigned int len=strlen(appname)+22;
    char key[len];
    memset(key,0,len);
   
    strcat(key,appname);
    strcat(key,"\\shell\\open\\command");
   
    return ReadString(HKEY_CLASSES_ROOT,key,"");;
}

// Ouvre un fichier avec le programme qui est associé avec l'extension ext
bool OpenLike(const char * ext,const char * filename){
    char * exename;   
    exename = GetAssocExe(ext);
   
    if(exename==NULL) return 0;
    system(Replace(exename,"%1",filename));
   
    return 1;
}


Cette discussion est classée dans : fichier, programme, extension, retrouver, associé


Répondre à ce message

Sujets en rapport avec ce message

lire un fichier d'option [ par Vinsou ] Je dévellope un projet sous linux. Dans ce programme j'ai des variables qui contiennent le chemin de fichiers se trouvant sur le système, qui doivent QUESTION ya T IL UN AUTRE MOYEN EN RESEAU ? [ par bily ] Vegeta :-)comment faire pour envoyer un fichier par programme ??je programme en c++builder et j'utilise les socketsG 1 IDEE mais est ce la BONNE ?Li fopen() et shell_notifyicon() [ par CyberP ] 1) J'ai créé un programme qui lit dans un fichier qui est normalement dans le meme répertoire que le programme. Mais lorsque je le lance grâce à un ra ouverture d'un fihier au lancement d'un programme [ par spirit ] j'aimerai savoir comment connaitre le nom d'un fichier lors de l'execution du programme associé à ce fichierex: quand on clique sur un fichier .txt, B programme à faire [ par cmoa ] bonjour , j'ai un programme que je ne sais pas écrire (j'y connais rien)voici le sujet:écrire 1 programme qui lit le contenu d'1 fichier(source écrit copier un fichier ressource lors de l'execution [ par arthuro2001 ] Je voudrais copier un fichier exe ( ou tout autre type de fichier ) en ressource de mon programme sur la machine executant mon programme afin de pouv Retrouver un fichier ??? [ par iljamila ] Lu tlmd !!!je voudrais savoir si c'est possible de retrouver un fichier (.c) à partir d'un fichier (.o) ?Au fait j"ai perdu l'unique copie d'une sour Vérifier un header de fichier... [ par MorZong ] Salut,Voilà j'ai créer un programme (simple, pas avec API) de cryptage tout simple et je voudrais qu'il ait sont propre genre de fichier. Alors j'ai m erreur de demarrage programme [ par nango ] Quand je compile sous visual c++ il m'apparait le message d'erreur suivant : "un fichier.DLL requis, MSPDB60.DLL, n'a pas été trouvé".Pourtant ce fich AIDE programme supprimer un fichier ! SVP [ par nico ] salut à tous,je suis un gros nul en c++ , je viens de telecharger dev-c++ et j'aimerais faire mon premier programe tout simple pour supprimer un fichi


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales