Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-02-2004
tango01 tango01 is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mar del Plata - Argentina
Posts: 46
Poder: 0
tango01 Va por buen camino
Creacion de Accesos directos con otros Iconos

hola, tengo una applicion que baja algunos archivos de internet y crea accesos directos en el escritorio ...bue...

el tema es que cuando crea los acceso directos me pone el icono del exe destino y lo que yo quiero es poner otro icono que tengo guardado en un TImageList ...

Aguien me puede tirar un punta


gracias de antemano.
__________________
El secreto de la libertad está en no tener miedo.
Responder Con Cita
  #2  
Antiguo 04-02-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
El ícono que muestran los ShortCuts pueden ser archivos de íconos, o cualquier PE File (Exe, Dll...) que contenga este ícono como recurso. Lo que puedes hacer es incluír este ícono a los recursos de tu proyecto. Esto puedes hacerlo editando al .res de tu proyecto, o bien agregando uno nuevo que lo contenga con {$R MIRECURSO.RES}, luego cuando crees el acceso directo, tienes que especificar el índice del ícono del exe, que va a ser mostrado, el default es el primero.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 04-02-2004
tango01 tango01 is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mar del Plata - Argentina
Posts: 46
Poder: 0
tango01 Va por buen camino
gracias por la info ... lo que pasa que estoy usando una funcion para crear los Accesos directos, que tengo la opcion de indicarle el index del icono ...

me podrias dar mas info del tema...

gracias.
__________________
El secreto de la libertad está en no tener miedo.
Responder Con Cita
  #4  
Antiguo 04-02-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Mostrame el código de la función, y vemos...
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 05-02-2004
tango01 tango01 is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mar del Plata - Argentina
Posts: 46
Poder: 0
tango01 Va por buen camino
a qui esta el codigo ....

Código:
procedure CreaLnk( Exe,Argumentos,DirTrabajo,NombreLnk,DirDestino:string);
  var
    Objeto: IUnknown;
    UnSlink: IShellLink;
    FicheroP: IPersistFile;
    WFichero: WideString;
  begin
    Objeto := CreateComObject(CLSID_ShellLink);
    UnSlink := Objeto as IShellLink;
    FicheroP := Objeto as IPersistFile;
    with UnSlink do
      begin
        SetArguments( PChar(Argumentos) );
        SetPath( PChar(Exe) );
        SetWorkingDirectory( PChar(DirTrabajo) );
      end;
    WFichero := IncludeTrailingBackslash(DirDestino) + NombreLnk;
    FicheroP.Save(PWChar(WFichero),False);
  end;
__________________
El secreto de la libertad está en no tener miedo.
Responder Con Cita
  #6  
Antiguo 05-02-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Puedes agregar dentro del with, la línea SetIconLocation(ArchivoIcono, IndiceIcono);

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #7  
Antiguo 05-02-2004
tango01 tango01 is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mar del Plata - Argentina
Posts: 46
Poder: 0
tango01 Va por buen camino
gracias .... voy a probar con eso ....
__________________
El secreto de la libertad está en no tener miedo.
Responder Con Cita
  #8  
Antiguo 05-02-2004
tango01 tango01 is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mar del Plata - Argentina
Posts: 46
Poder: 0
tango01 Va por buen camino
bueno .. ya casi lo tengo ...

el Acceso Directo tiene una referencia al ArchivoIcono. Yo le puse el IndiceIcono = 0

el tema es que no encuentra el ArchivoIcono . .. cuando voy a las propiedades del Acceso Directo me dice ... no se puede encontrar ArchivoIcono, por ejemplo: "Windows no puede encontrar TESTING"

previamente con el ImageEditor de delphi abri el .res del proyecto (del exe al que apunta el acceso directo) y cree un icono llamado testing
tambien probe ponerle testing.ico ... pero el tema es que no se windows donde busca el archivo del icono ... aparentemente no lo busca en el resource del exe ... tambien probe poner el .ico al lado del exe y nada.

donde busca el acceso directo el icono que defino con la funcion SetIconLocation(ArchivoIcono, IndiceIcono)?????


gracias por vuestra ayuda
__________________
El secreto de la libertad está en no tener miedo.
Responder Con Cita
  #9  
Antiguo 05-02-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Probé tu código "levemente modificado", y funciona:
Código:
procedure TForm1.Button1Click(Sender: TObject);
var
  AComObject: IUnknown;
  APersistFile: IPersistFile;
begin
  AComObject := CreateComObject(CLSID_ShellLink);

  with AComObject as IShellLink do
  begin
    OleCheck(SetArguments(''));
    OleCheck(SetPath('C:\WINDOWS\CALC.EXE'));
    OleCheck(SetWorkingDirectory('C:\WINDOWS'));

    {Para que tome el ícono por Default}
    //OleCheck(SetIconLocation(nil, 0));

    {Para Otro ícono}
    OleCheck(SetIconLocation('C:\WINDOWS\Moricons.dll', 10));
  end;

  AComObject.QueryInterface(IPersistFile, APersistFile);
  APersistFile.Save('C:\ACCESO DIRECTO.LNK', False);
end;
Supongo que si pones SetIconLocation(nil, X)... tomará el ícono X del exe del SetPath!

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #10  
Antiguo 05-02-2004
tango01 tango01 is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mar del Plata - Argentina
Posts: 46
Poder: 0
tango01 Va por buen camino
espectacular ... gracias delphi.com.ar

lo solucione con los parametros:

ArchivoIcono = miIcono.ico
IndiceIcono = 0


gracias ...
__________________
El secreto de la libertad está en no tener miedo.
Responder Con Cita
  #11  
Antiguo 05-02-2004
Descendents Descendents is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 396
Poder: 21
Descendents Va por buen camino
Una pequeña pregunta.

¿Esta linea que utilidad tiene?

¿Podemos hacer el procedimiento sin esta linea verdad?
OleCheck(SetWorkingDirectory('C:\WINDOWS'));

Un saludos
Muchas Gracias
__________________
La victoria tiene cien padres. La derrota es huérfana (Napoleón).
Responder Con Cita
  #12  
Antiguo 05-02-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por Descendents
¿Esta linea que utilidad tiene?
Esa línea escribe el dato "Iniciar En"... obviamente podemos prescindir de este dato si lo quisiéramos.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #13  
Antiguo 13-07-2004
JoseQ JoseQ is offline
Miembro
 
Registrado: jul 2004
Posts: 167
Poder: 20
JoseQ Va por buen camino
hola, me gustaria saber que unidades son necesarias para poner en marcha este procedimiento, el de crear los accesos directos, porque no me reconoce los tipos de las variables y no encuentro referencia alguna a ellos en la ayuda. Gracias
Responder Con Cita
  #14  
Antiguo 13-07-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por JoseQ
...me gustaria saber que unidades son necesarias para poner en marcha este procedimiento...
Código Delphi [-]
uses
  ComObj, ActiveX, ShlObj;

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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


La franja horaria es GMT +2. Ahora son las 12:16:06.


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