Code source
Code source

  Présentation
  Unités exemple gratuites
  Unités commercialisées
  Conditions d'utilisation
  Comment acheter
  Vendez vos codes
Unités commercialisées

  LRJ_DosDevice
  LRJ_FileMapped
  LRJ_ModifDateTime
  LRJ_ShellUtils
  LRJ_TokenAPI
  LRJ_WinACL
  LRJ_WinBrowseDialog
  LRJ_WinCreateProcess
  LRJ_WinDesktop
  LRJ_WinDirectories
  LRJ_WinDocRecents
  LRJ_WinDrives
  LRJ_WinFavorisWeb
  LRJ_WinFiles
  LRJ_WinIconNotifArea
  LRJ_WinInternetShortcut
  LRJ_WinMenuFolder
  LRJ_WinModule
  LRJ_WinNetApi
  LRJ_WinNetLocalGroups
  LRJ_WinNetUsers
  LRJ_WinPrivileges
  LRJ_WinProcess
  LRJ_WinRecycleBin
  LRJ_WinRegion
  LRJ_WinRegAppPath
  LRJ_WinShellLink
  LRJ_WinShellUI
  LRJ_WinSID
  LRJ_WinStation
  LRJ_WinTokenGroups
  LRJ_WinTrackChangeDir
  LRJ_WinVolumes
  LRJ_WinWorkingSet

   Accueil | GlobalDesk | Code source Delphi | Développements | Votre compte | Contact   

Code source : unité LRJ_WinShellLink




      
Description : cette unité contient l'objet LRJ_TShellLink qui permet de créer, modifier et extraire les informations d'un raccourci Windows (fichiers .LNK).

L'unité est livrée avec une application de démonstration ( voir description plus loin ) qui utilise les fonctionnalités de l'objet contenu dans l'unité. Les codes de l'application sont livrés avec l'unité pour illustrer comment utiliser l'objet LRJ_TShellLink contenu dans cette unité. L'application de démonstration utilise les unités LRJ_GridsPlus et LRJ_WinBrowseDialog non livrées avec l'application.

L'unité LRJ_WinShellLink met en oeuvre les fonctions et interfaces de Windows suivantes :
             CoCreateInstance
CoInitializeEx
CoUninitialize
FileTimeToLocalFileTime
FileTimeToSystemTime
GetDiskFreeSpaceW
GetFileAttributesExW
IPersistFile
IShellLink
IShellLinkDataList
LocalFree
SetErrorMode

Déclarations publiques de l'unité  I  Télécharger l'application de démonstration  I  Exemples d'utilisations

Utilise les unités : Windows, Classes, SysUtils, ActiveX, ShlObj, Menus et LRJ_WindowsPlus.

Version : 1.1 du 10.05.2009
Auteur : Laurent Hède
Copyright : LorenJo

Nombre de lignes : 974

Réalisée sous : Delphi 6

Systèmes compatibles : NT4, 2000, XP, Vista, serveurs

Prix : 208.00 € H.T.

Déclarations publiques de l'unité :

unit LRJ_WinShellLink;

interface
                      uses
                      Windows,
                      Classes,
                      SysUtils,
                      ActiveX,
                      ShlObj,
                      menus,
                      LRJ_WindowsPlus
                      ;

   ..................

type
  // remarque: les chaines ne doivent pas dépasser  MAX_PATH(255) avant win2000, sinon peuvent
  // atteindre INFOTIPSIZE (1024) à partir de win2000
  // jj := LrJ_TShellLink.create;
  // jj.TargetFullName := Application.ExeName;
  // jj.ShowCmd := SW_SHOWDEFAULT;
  // jj.SaveToFile( ' APathDirectory  ' , 'nom de l'icone (sans.lnk)');
  // jj.free;
  // Ce code permet de créer une nouvelle icône qui est un raccourci sur l'application en cours
  //-----------OBJECT--------------------------
LRJ_TShellLink = class(TObject)
  ..................
     // AFlag = combinaison de SLR_INVOKE_MSI, SLR_NOLINKINFO, SLR_NO_UI, SLR_NOUPDATE, SLR_NOSEARCH, SLR_NOTRACK, SLR_UPDATE
  function Resolve(const AHWND: HWND; const AFlag: DWORD): boolean;
     // APathDirectory sans le '/' terminal; ALinkName sans extension, prendra l'extension .LNK. IfClearCurrentFileName
     // pour définir si le nouveau fileName devient le FileName de LrJ_TShellLink ou pas
  function SaveToFile(const APathDirectory: string; const ALinkName: string;
                                                const IfClearCurrentFileName: boolean = true): boolean; overload;
  function SaveToFile(const AFullLinkName: string; const IfClearCurrentFileName: boolean = true): boolean; overload;
  function SaveToFile: boolean; overload; // Save avec le nom utilisé par load, IfClearCurrentFileName = true
  function LoadFromFile(const AFullLinkName: string; const AFlag : integer = STGM_READWRITE): boolean;
  // propriétés de la cible
  property TargetFullName: string read GetTargetFullName write SetTargetFullName; // '' en cas d'erreur
  property TargetSize: Int64 read GetTargetSize; // -1 en cas d'erreur
  property TargetDiskSize: Int64 read GetTargetDiskSize; //-1 en cas d'erreur
  property TargetLastAccessTime: TDateTime read GetTargetLastAccessTime; //0 en cas d'erreur
  property TargetLastWriteTime: TDateTime read GetTargetLastWriteTime; //0 en cas d'erreur
  property TargetCreationTime: TDateTime read GetTargetCreationTime; //0 en cas d'erreur
  property TargetFileAttribs: DWORD read GetTargetFileAttribs; 
  // propriétés du lien
  property LinkSize: Int64 read GetLinkSize; // -1 en cas d'erreur
  property LinkDiskSize: Int64 read GetLinkDiskSize; //-1 en cas d'erreur
  property LinkLastAccessTime: TDateTime read GetLinkLastAccessTime; //0 en cas d'erreur
  property LinkLastWriteTime: TDateTime read GetLinkLastWriteTime; //0 en cas d'erreur
  property LinkCreationTime: TDateTime read GetLinkCreationTime; //0 en cas d'erreur
  property IDList: PItemIDList read GetPItemIDList write SetPItemIDList;  //nil en cas d'erreur
       // voir nShowCmd de la fonction ShellExecute de Windows
  property ShowCmd: Integer read GetShowCmd write SetShowCmd;   //-1 en cas d'erreur
  property WorkingDirectory: string read GetWorkingDirectory write SetWorkingDirectory; // '' en cas d'erreur (mais '' est une réponse possible)
  property RelativePath: string write SetRelativePath;
  property CommandLineArgument: string read GetCommandLineArgument write SetCommandLineArgument; //'' en cas d'erreur (mais '' est une réponse possible)
  property Description: string read GetDescription write SetDescription; // '' en cas d'erreur (mais '' est une réponse possible)
  property HotKey: LrJ_TShellLinkHotKey read GetHotKey write SetHotKey;
  property IconLocation: LrJ_TShellLinkIconLocation read GetIconLocation write SetIconLocation;
  // IShellLinkDataList fonctionnalités
  property DataBlockFlags: DWORD read GetDataBlockFlags write SetDataBlockFlags;
  // lorsqu'on attribut un texte ou un pointeur à la propriété, on ajoute le bloc au lien. Lorqu'on attribut un texte vide ('')
  // ou un pointeur vide (nil) à la propriété, on soustrait le bloc au lien.
  property DarwinID: string read GetDarwinID write SetDarwinID;
  property ExpandedTargetPath: string read GetExpandedTargetPath write SetExpandedTargetPath;
  property ExpandedIconPath: string read GetExpandedIconPath write SetExpandedIconPath;
  property SpecialFolderData: LRJ_PShellDataBlocSpecFolder read GetSpecialFolderData write SetSpecialFolderData; 
  property ConsoleCodePage: PUINT read GetConsoleCodePage write SetConsoleCodePage;
  property ConsoleProperties: LRJ_PNT_CONSOLE_PROPS read GetConsoleProperties write SetConsoleProperties;
  end; //-----------FIN--------------------------



Application de démonstration

L'onglet "Infos" affiche les informations contenues dans le raccourci et liées au raccourci.
L'onglet "DataBloc texte" permet de modifier des informations liées à l'interface IShellLinkDataList contenues dans le raccourci.


Exemples d'utilisations

Créer un raccourci sur le bureau vers l'application
var
  zShellLink: LrJ_TShellLink;
begin
zShellLink := LrJ_TShellLink.create;
zShellLink.TargetFullName := Application.ExeName;
zShellLink.ShowCmd := SW_SHOWDEFAULT;
zShellLink.SaveToFile( 'chemin du bureau', 'nom du raccourci (sans.lnk)');
zShellLink.free;
end;

Vous n'avez pas trouvé d'exemple répondant à votre problématique ?
Cliquez sur ce lien.


 Accueil | GlobalDesk | Code source Delphi | Développements | Votre compte | Contact 
Copyright © LorenJo 2000-2009    Notice légale