Bonnjour,
J aimerais pouvoir recuperer l'icone d'un fichier , d'un programme ou d'un dossier
puis le charger dans une image
Comment faire ?
Merci d'avance
Version imprimable
Bonnjour,
J aimerais pouvoir recuperer l'icone d'un fichier , d'un programme ou d'un dossier
puis le charger dans une image
Comment faire ?
Merci d'avance
Salut
Pour les exe voici la fonction :
Mais le mieux pour toi est de consulter ce lienCode:
1
2
3
4
5
6
7
8
9
10
11
12
13 LoadResource The LoadResource function loads the specified resource into global memory. HGLOBAL LoadResource( HMODULE hModule, // module handle HRSRC hResInfo // resource handle ); Parameters hModule [in] Handle to the module whose executable file contains the resource. If hModule is NULL, the system loads the resource from the module that was used to create the current process. hResInfo [in] Handle to the resource to be loaded. This handle is returned by the FindResource or FindResourceEx function. Return Values
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Resources/IntroductiontoResources/ResourceReference/ResourceFunctions/LoadResource.asp
Pour les fichiers et lesdossiers, je penses qu'il faut aller voir dans la base de registres, mais je ne sais pas exactement.
Bon courage :wink:
Merci pour ta reponce mais je croi que je vai aller vers une autre voie
Merci encors et bon developpement :wink:
bonjour a tous,
Etant donné que j ai la solution autant en faire profiter ceux qui en ont besoin
voici le code pour trouver l icon par defaut d un fichierCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 //il faut un OpenDialog et un Image; #include <windows.h> #include <shellapi.h> #include <Registry.hpp> // je sais pas si ils sont tous utile if(OpenDialog1->Execute()){ HANDLE hCurrentInst, hicon; AnsiString ext = ExtractFileExt(File); AnsiString Pathicon=""; int index; HBRUSH brush; brush = CreateSolidBrush(RGB(5,5,5)); // pour la transparence TRegistry *Reg = new TRegistry(); Reg->RootKey = HKEY_CLASSES_ROOT; if(Reg->OpenKey(ext, false)){ AnsiString nom = Reg->ReadString("") + "\\DefaultIcon"; Reg->CloseKey(); Reg->RootKey = HKEY_CLASSES_ROOT; if(Reg->OpenKey(nom,false)) Pathicon = Reg->ReadString(""); } delete Reg; if(Pathicon.Pos(",") != 0){ index = Pathicon.SubString(Pathicon.Pos(",")+1,Pathicon.Length()).ToInt(); Pathicon = Pathicon.SubString(0,Pathicon.Pos(",")-1); } hCurrentInst = (HINSTANCE) GetWindowLong(Handle, GWL_HINSTANCE); hicon = ExtractIcon(hCurrentInst, Pathicon.c_str(), index); if(hicon == NULL){ ShowMessage("Icon Non Trouvés !!!"); } else if(hicon != NULL) { DrawIconEx(Image1->Canvas->Handle, 0, 0, hicon, 32, 32,0,brush, DI_NORMAL); Image1->Transparent=true; Image1->Picture->Bitmap->TransparentColor = RGB(5,5,5); } }
mais pas un exe
j ai une question encors par rapport a ce code
j utilise a peu pres le meme pour avoir l icon d un programme
Quand je choisi Internet Exploreur (IEXPLORE.EXE) le fond n a pas la bonne couleur et l icon n est pas transparent
Pourquoi ???
Merci d avance