IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Analyser un fichier .LNK un peu particulier


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Par défaut Analyser un fichier .LNK un peu particulier
    Bonjour,
    Je suis en Delphi 7 et sur un Windows 10.
    Comment analyser le contenu d'un raccourci .LNK avec comme cible d'après les propriétés Windows du fichier une adresse du type {7C5...}\Cyberlink....?
    D'avance grand merci.

  2. #2
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Par défaut Suite
    Bonjour,
    Quelques remarques à propos du lien
    https://delphi.developpez.com/faq/?p...ci-de-type-LNK
    L'origine semble être :
    https://www.developpez.net/forums/d1...d-fichier-lnk/
    de ShaiLeTroll qui précise :
    Essaye mon code remplaçant IID_IShellLinkW par IID_IShellLinkA si tu es en D7
    D'autre part
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LResult := LPersistFile.Load(PChar(AShellLinkFileName), STGM_READ); // Erreur de compilation
    J'ai essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LResult := LPersistFile.Load(PWideChar(AShellLinkFileName), STGM_READ);
    Mais cela ne fonctionne pas : aucune réponse.
    D'avance merci.

  4. #4
    Membre émérite
    Avatar de Cirec
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 467
    Par défaut
    Bonjour,

    code testé Ok sous D7 & win7
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    unit UIShellLNK;
     
    interface
    uses
      Windows, ShellApi, ShlObj, Messages, ActiveX,
      Classes, SysUtils;
     
    type
      /// <summary>TSLTShellLink encapsule l'utilisation de l'interface IShellLink</summary>
      TSLTShellLink = class(TObject)
      public
        class function ExtractTarget(const AShellLinkFileName: TFileName): TFileName;
      end;
     
    implementation
    { TSLTShellLink }
     
    //------------------------------------------------------------------------------
    class function TSLTShellLink.ExtractTarget(const AShellLinkFileName: TFileName): TFileName;
    // Voir la fonction cachée "GetFileNameFromLink" dans Vcl.ExtDlgs
    // Ne pase inclure Winapi.Ole2 qui contient IID_IPersistFile, cela devient trop pénible les conflits entre TGUID de Delphi et TGUID de Winapi.Ole2
    const
      IID_IPersistFile: TGUID = '{0000010B-0000-0000-C000-000000000046}';
    var
      LResult: HRESULT;
      LSHellLink: IShellLink;
      LPersistFile: IPersistFile;
      LFindData: TWin32FindData;
      FileName: array[0..MAX_PATH - 1] of Char;
    begin
      Result := '';
      LResult := CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IID_IShellLinkA, LShellLink);
      if LResult = S_OK then
      begin
        if Supports(LShellLink, IID_IPersistFile, LPersistFile) then
        begin
          LResult := LPersistFile.Load(PWideChar(WideString(AShellLinkFileName)), STGM_READ);
          if LResult = S_OK then
          begin
            LResult := LSHellLink.GetPath(FileName, MAX_PATH, LFindData, SLGP_UNCPRIORITY);
            if LResult = S_OK then
              Result := Trim(FileName);
          end;
        end;
      end;
    end;
     
    end.
    Codialement,
    @+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Par défaut Suite
    Bonjour,
    Désolé, après mes essais complémentaires toujours sur Delphi 7 et surtout Windows 10 j'ai 5 raccourcis à problèmes :

    Skype :
    d'après Propriétés de Microsoft cible :
    Microsoft.SkypeApp-kzf8qxf38zg5c!App

    Edge :
    d'après Propriétés de Microsoft cible :
    Microsoft.MicrosoftEdge_8wek...................

    Paint 3D :
    d'après Propriétés de Microsoft cible :
    Microsoft.MSPaint_8wekyb...........

    MakeCode for microbit :
    d'après Propriétés de Microsoft cible :
    MicrosoftEducationalFounda.196216C478B_e88r6s0B2swar!A..

    CyberLink_Power2Go
    d'après Propriétés de Microsoft cible :
    {7C5A40EF-....}Cyberlink/Pov....

    D'avance merci

Discussions similaires

  1. [Windows]lecture des fichier lnk (raccourcis)
    Par Tiaps dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 21/10/2009, 19h27
  2. Utilisation d'un fichier OCX (un peu) particulier
    Par Adau72 dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 13/06/2007, 11h04
  3. Commande pour analyser un fichier avec lex et yacc
    Par gRaNdLeMuRieN dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 13/09/2005, 19h12
  4. Programme qui analyse un fichier log
    Par abdou.sahraoui dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 20/08/2004, 14h27
  5. Réponses: 2
    Dernier message: 05/01/2004, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo