bonjour
j'ai ecrie un programme qui peut creer d'autre fichier... bon mais est-ce que on peut changer l'icon du fichier creer...
les fichier son a l'origines des fichier *.txt mais j'ai changer l'extention en *.crp...
bonjour
j'ai ecrie un programme qui peut creer d'autre fichier... bon mais est-ce que on peut changer l'icon du fichier creer...
les fichier son a l'origines des fichier *.txt mais j'ai changer l'extention en *.crp...
il faut simplement enregistrer le nouveau type de fichier dans la base de registre, en précisant l'icone que tu souhaites lui associer.
Envoyé par rigobert
ouai ok....
tu peux m'envoyer un script ou un truc du genre... pcq la je ne suis pas quoi.
tu utilises quel langage, quel framework, quelle(s) lib(s) ?
langage C
IDE : DEV C++
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
voila ^^
dans HKEY_CLASSES_ROOT (dans la base de registre), il faut créer :
- une clé déclarant une nouvelle extension associée à une classe de document (nouvelle ou existante).
par ex: xnview.tga = [REG_SZ] "image TGA"
où xnview est la classe, tga l'extension et "image TGA" le descripteur.
- une sous-clé "DefaultIcon" (sous la précédente) indiquant l'icone associée (fichier & rang).
par ex: DefaultIcon = [REG_SZ] "C:\Program Files\XnView\xnview.exe,9"
où 9 indique qu'il s'agit de la 10ème icone dans xnview.exe
C'est tout.
Si tu ne sais pas comment écrire dans la base de registre, regarde ici.
oula oula... t'as pas plus simple ^^ un truc aussi simple que ajouter une icon à une application... pcq j'ai pas trop envi trop retoucher mon code... dc voila
Dis donc ce n'est pas toi qui a déjà posté cette question ? Bref ce n'est pas bien compliqué, il faut juste repérer la logique de windows.
Rigobert t'a donné la marche à suivre : 3 clés registre à modifier, c'est pas la mort...
Si tu as besoin d'aide, reposte mais il ne faut pas décourager pour si peu.
[edit] Joubliais... non, on ne peut pas faire autrement
damned they found me^^
okmais une fais que je sui dans les registres je fais quoi je vais dans HKEY_CLASSES_ROOT mais apres je suis un peut perdu dc voila^^
Est-ce que tu sais ce qu'est la base de registre ou pas ?Envoyé par me_ww
Parce que si ce n'est pas le cas, je comprends que ça puisse te paraitre compliqué ...
Rigobert a raison. Si ce n'est pas le cas, commence par te familiariser avec la base de registre en exécutant 'regedit'. (de préférence en utilisateur limité)
Si tu connais déjà un minimum, voici à peu près comment cela se passe pour les icônes : dans HKEY_CLASS_ROOT, tu as toutes les extensions connues. (".xxx") Dans chaque clé registre portant cette extension, le (default) indique (ne t'occupe pas du REG_SZ) le nom démonstratif de ce type de fichiers. Dès que tu as celui ci, recherche le dans HKEY_CLASS_ROOT et ouvre cette clé. Tu trouveras un "dossier" à l'intérieur portant le nom DefaultIcon. Une fois ouvert, tu verras que son (default) est égal à un chemin de fichier. Il s'agit de l'icône en question. Il peut s'agir d'un chemin d'exécutable, auquel cas il est suivi de ',x', où x est le numéro en ressource de l'icone en question, ou alors un chemin direct vers l'icône.
Voilà, tu n'as plus qu'à le retranscrire en code en utilisant les références d'msdn (la bible oohhhh ) sur les fonctions manipulatrives de registres.
Si tu as un problème, n'hésite pas à poster.
Voilà bon codage.
je pense que tu vas me prendre pour un con mais je n'ais strictement rien compris
alors j'ouvre la base de registre (ça je sais faire^^) dans HKEY_CLASSES_ROOT je fais quoi edition->nouveau->clé? que je nomme comme l'extension que je veux creer?
dsl mais la seul fois où j'ais utilise ces bases de registrer c'était pour surprimmer un client ^^
Bon... reprenons depuis le début.
rigobert -> Inutile de répondre, je m'en occupe
Tu veux le faire en code C non ? Eh bien on va le faire en code C. Alors laisse de côté les créer une nouvelle clé etc... on le fera directement avec les fonctions de msdn.
Voici les étapes à faire pour changer une icône :
- Ouvre HKEY_CLASS_ROOT
- Repère l'extension dont tu veux changer l'icône
- Ouvre la
- Dans le (default) se trouve le nom de fichier de l'extension. Son ID, en quelque sorte. Mémorise le.
- Retourne dans HKEY_CLASS_ROOT
- Repère l' "ID" mémorisé
- Ouvre le
- Dans cette clé se trouve un "dossier" intitulé "DefaultIcon". Ouvre le.
- Dans le (default) de ce même dossier se trouve le chemin de l'icône tant cherchée. (donc change la par le chemin de l'icone pour qu'elle soit appliquée)
Il ne te reste plus qu'à traduire ces étapes en code, avec l'aide d'msdn.
Bon codage
je block a l'etape 8 pcq defaulticon n'existe pas il n'y a que shell ->open->command
et c'est quoi msdn
Tu as dû mal comprendre. Ok je te fais un exemple (.mp3 par exemple):
HKEY_CLASS_ROOT -> .mp3 -> (default) = mp3file
Donc
HKEY_CLASS_ROOT -> mp3file -> DefaultIcon -> (default) = ICON_PATH
Tu n'as quà changer ICON_PATH pour avoir ton icône personnalisée.
[edit] msdn, c'est la bible pour tout programmeur windows. Il s'agit de la documentation microsoft pour l'API windows. Son url : msdn.microsoft.com/library
[reedit] Si DefaultIcon n'existe pas, tu n'as qu'à le créer. Mais garde la syntaxe ! C'est à dire même nom de "dossier" (DefaultIcon), et même nom de clé (de toute façon c'est le (default)).
ok j'ai fais ce que tu ma dis de faire mais pour le msdn je vois pas tu peux m'aider a coder tous ça???
on progresse on progresse ^^
Je ne vais pas non plus te faire le code ^^
Voici déjà les fonctions dont tu auras besoin :
Ouverture de clés : RegOpenKeyEx()
Création : RegCreateKeyEx()
Récupération de valeur : RegQueryValueEx()
Définition de valeur : RegSetKeyValue()
Fermeture : RegCloseKey()
Le tout avec un Handle de clé registre : HKEY.
Tu as juste à lire le tout, et tu sauras comment faire.
bon sa me sool je laisse tomber.... j'y reviendrai quand je serai plus fort.. merci @+
Tu ne devrais pas laisser tomber... surtout que tu as tout ce qu'il te faut ici. Si tu change d'avis, reposte
ba si tu es motive pour fair un tuto detailler sur ça sa serai cool .. mais moi la je suis l'arger ^^
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager