Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-09-2008
rauros rauros is offline
Miembro
 
Registrado: feb 2008
Ubicación: Alicante - Sax / Sax - Alicante
Posts: 235
Poder: 17
rauros Va por buen camino
Con los breakpoints he detectado que el psl es nil, y supongo yo que eso significa que el puntero no tiene dirección de memoria. El problema es que yo nunca he usado IShellLink, intentaré crearlo a ver si funciona pero si no os aviso.
Responder Con Cita
  #2  
Antiguo 27-09-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Código Delphi [-]
 if LongBool(GetFileAttributes('C:\Archivos de programa') and $400{FILE_ATTRIBUTE_REPARSE_POINT}) then
  MessageBox(0, 'LNK', nil, 0);
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #3  
Antiguo 27-09-2008
rauros rauros is offline
Miembro
 
Registrado: feb 2008
Ubicación: Alicante - Sax / Sax - Alicante
Posts: 235
Poder: 17
rauros Va por buen camino
Y exactamente que hace eso?

Voy a ponerte desde mi punto de vista lo que pienso que hace:

Si coges los atributos de archivos de programa (por qué?) y parte desconocida por mí se genera el mensaje LNK.
Responder Con Cita
  #4  
Antiguo 29-09-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 rauros Ver Mensaje
Y exactamente que hace eso?

Voy a ponerte desde mi punto de vista lo que pienso que hace:

Si coges los atributos de archivos de programa (por qué?) y parte desconocida por mí se genera el mensaje LNK.
Tienes mucha razón rauros, creo que me falla la "vista" pues no se desde qué momento me convencí que necesitabas reconocer a un "Symbolic Link", en todo caso "edito"

Código Delphi [-]
uses ActiveX, ComObj, ShlObj;
 
function GetShellLinkPath(FileName: string): string;
var ShellLink: IUnknown;
begin
 ShellLink := CreateComObject(CLSID_ShellLink);
 if (ShellLink as IPersistFile).Load(PWideChar(WideString(FileName)), STGM_READ) = 0 then
  begin
   SetLength(FileName, MAX_PATH);
   (ShellLink as IShellLink).GetPath(@FileName[1], MAX_PATH, PWin32FindData(0)^, SLGP_UNCPRIORITY);
   Result := PChar(@FileName[1]);
  end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var FileName: PChar;
begin
 FileName := PChar(GetShellLinkPath('c:\Documents and Settings\666\Desktop\ClubDelphi.lnk'));
 if (FileName <> '') and LongBool(GetFileAttributes(FileName) and FILE_ATTRIBUTE_DIRECTORY) then
  if not SetCurrentDirectory(FileName) then
   MessageBox(Handle, PChar(SysErrorMessage(GetLastError)), nil, MB_ICONERROR);
end;

Saludos
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #5  
Antiguo 28-09-2008
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: may 2008
Ubicación: Bogotá
Posts: 527
Poder: 17
TOPX Va camino a la fama
Cita:
Empezado por rauros Ver Mensaje
El problema es que yo nunca he usado IShellLink
Es cierto, veo que puede que esa interface no aplique en su Win Vista... y como no tengo una instalación de eso por acá cerca, podría Ud. probar:
  1. o con IShellLinkW
    -
  2. o con el IPersistFile.Load que usan en la función GetShellLinkInfo de http://www.informit.com/articles/art...26940&seqNum=4
    -
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
Respuesta



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
extraer informacion de accesos directos lnk octalh API de Windows 2 22-03-2008 21:12:22
Problema con accesos directos en InstallShield Express 3.5 amadis Varios 0 19-10-2007 22:14:46
Como poner accesos directos en "enviar a" con Inno Setup? Durbed Varios 0 12-01-2007 21:12:34
Creacion de Accesos directos con otros Iconos tango01 Varios 13 13-07-2004 18:21:04


La franja horaria es GMT +2. Ahora son las 16:27:44.


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