Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-12-2008
_cero_ _cero_ is offline
Miembro
 
Registrado: abr 2007
Posts: 147
Poder: 18
_cero_ Va por buen camino
Thumbs up

Yo si que la probe y va perfecto en win 32, pero solo da los iconos en 16x16.

Código:
HICON ExtractAssociatedIcon(      
    HINSTANCE hInst,
    LPTSTR lpIconPath,
    LPWORD lpiIcon
);
Quizá hubo una confusión por el hipervínculo.
Responder Con Cita
  #2  
Antiguo 17-12-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cita:
Empezado por _cero_ Ver Mensaje
...Quizá hubo una confusión por el hipervínculo.
al parecer...

Entonces; lo unico que queda es analizar los recursos.

PD;
Cita:
Empezado por F1
LoadIcon can only load an icon whose size conforms to the SM_CXICON and SM_CYICON system metric values. Use the LoadImage function to load icons of other sizes.
Tambien te tocara revisar la API ShellAPI.FindExecutable

Suerte!
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #3  
Antiguo 17-12-2008
_cero_ _cero_ is offline
Miembro
 
Registrado: abr 2007
Posts: 147
Poder: 18
_cero_ Va por buen camino
Pues estoy devuelta después de estudiar un poco la función “LoadImage” que dejo cHackAll(gracias), y después de eso sigo sin poder extraer los iconos de las diferentes extensiones con una calidad aceptable, lo único que he logrado es obtenerlos de ejecutables y dll, pero hasta ahí. Me pregunto si abra una forma de darle el icono a la función “LoadImage” para redimensionarlos.
Responder Con Cita
  #4  
Antiguo 17-12-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.198
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
_cero_, ¿has intentado leer los iconos con ExtractAssociatedIcon pero especificando el índice que quieres? (lpicon). No puedo probarlo ahora, estoy en un ordenador que no tiene instalado el compilador. Se me ocurre que los leas uno a uno y compruebes el tamaño en un bucle hasta que encuentres el que deseas.

Saludos.
Responder Con Cita
  #5  
Antiguo 17-12-2008
_cero_ _cero_ is offline
Miembro
 
Registrado: abr 2007
Posts: 147
Poder: 18
_cero_ Va por buen camino
Talking

Eso es una muy buena propuesta escafandra, ya lo avía intentado cambiando LPWORD lpiIcon, pero solo le di valores enteros (como 1, 10, 2, etc.) Y como no me funciono y además no sabía bien qué onda con los índices lo deje, así que si me pusieras un ejemplillo de cómo hacer lo que propones te lo agradecería mucho.
Responder Con Cita
  #6  
Antiguo 18-12-2008
_cero_ _cero_ is offline
Miembro
 
Registrado: abr 2007
Posts: 147
Poder: 18
_cero_ Va por buen camino
Post

Pues miren logre conseguir un icono de 32x32, con el siguiente código.

función.
Código:
UINT ExtractIconEx(          
  LPCTSTR lpszFile,
  int nIconIndex,
  HICON *phiconLarge,
  HICON *phiconSmall,
  UINT nIcons
);
Y aquí está como la use.
Código:
HICON hIcon;
HICON hIconSmall;
ExtractIconEx("C:\\Windows\\System32\\calc.exe", 0, &hIcon, &hIconSmall,1);

Image1->Picture->Icon->Handle   = hIcon;//hIconSmall;
Quisiera unos iconos más grandes, pero aun no entiendo el rollo de los índices de los iconos (y creo que con esto se solucionaría todo), alguien me podría explicar algo sobre los índices de los iconos?.
Responder Con Cita
  #7  
Antiguo 18-12-2008
_cero_ _cero_ is offline
Miembro
 
Registrado: abr 2007
Posts: 147
Poder: 18
_cero_ Va por buen camino
Red face

Ya profundice mas en este tema, y me quedo claro que un exe o dll pueden tener más de un icono y el índice es el numero que identifica a cada icono, ahora bien como saben un icono puede tener barias imágenes dentro de este, así que mi pregunta es de cómo puedo accesar a estas imágenes que están dentro del icono.
Les dejo una imagen por si no queda claro de a que estoy intentando accesar.

http://www.subirimagenes.com/otros-captura-1646462.html
Responder Con Cita
  #8  
Antiguo 18-12-2008
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.198
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
_cero_ Estuve probando los índices en ExtractAssociatedIcon y no he obtenido el resultado deseado. Sólo devuelve un hIcon 32x32.

Cita:
Empezado por _cero_ Ver Mensaje
alguien me podría explicar algo sobre los índices de los iconos?.
Pues un icono, tanto en su versión file.ico como en su versión en memoria y resource, puede contener mas de una imagen de icono, es decir un grupo de iconos de distinto tamaño y número de colores. De esta forma se puede elegir el mas apropiado según el modo de video presente. Tienes información de esto aquí y en este hilo. Esto me hizo pensar que quizás ExtractAssociatedIcon permitiría escoger un icono... pero no funciona.

De todas formas he cotilleado SHELL32.dll con un editor de recursos y los iconos de 48x48 están, tiene muchos mas iconos que los que muestra cuando tratas de personalizar el icono mostrado por una carpeta, por ejemplo.

Bueno, ¿y si del Registro sacamos el default icon de un tipo de archivo?. Por ejemplo HKEY_CLASSES_ROOT\txtfile\DefaultIcon = %SystemRoot%\system32\shell32.dll,-152 se puede leer como un resource, 152 es el grupo de iconos correspondiente al notepad y archivos de extensión asociada a este programa. Basta leerlos y obtener el del tamaño que te interesa.

Claro, esta es una solución que puede funcionar muy bien pero es un poco trabajosa. He buscado en la Red y este problema lo ha encontrado mucha gente.... Quizas una búsqueda mas a fondo de con una solución mas simple.

Saludos.

Última edición por escafandra fecha: 18-12-2008 a las 23:34:10.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
try-except - grandes problemas pmfras Conexión con bases de datos 1 12-06-2007 02:53:33
Obtener iconos para mejorar aspectos zugazua2001 Varios 2 05-08-2006 19:43:45
Grandes frases de grandes personas Nuria Humor 7 18-04-2004 05:40:17
tablas grandes Giniromero Firebird e Interbase 4 14-04-2004 18:18:48


La franja horaria es GMT +2. Ahora son las 21:49:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi