Quelqun pourrais-t-il me dire comment à partir d'un raccourci sur le bureau récuperer l'adresse d'éxécution de l'exe sur lequel point le raccourci.
Merci par avance
			
			
									
									
						RACCOURCI sur le bureau
il veut dire avec du code... fais une recherche de "shell" et "link" sur le forum, tu devrais tomber sur un code de Regis...
[edit]
http://purebasic.hmt-forum.com/viewtopi ... shell+link
Dri
			
			
									
									
						[edit]
http://purebasic.hmt-forum.com/viewtopi ... shell+link
Dri
sinon, la fonction exacte pour çà - en utilisant effectivement l'interface IShellLink (Code PB4) :
			
			
									
									
						Code : Tout sélectionner
ProcedureDLL.s ShellLink_GetPath(ShellLinkFile.s) 
  
  Protected ShellLink.IShellLinkA, PersistFile.IPersistFile, *buffer, result.s
  
  If CoInitialize_(0) = #S_OK 
    If CoCreateInstance_(?CLSID_ShellLink, 0, 1, ?IID_IShellLink, @ShellLink) = #S_OK 
      If ShellLink\QueryInterface(?IID_IPersistFile, @PersistFile) = #S_OK 
        *buffer = AllocateMemory(#MAX_PATH) 
        If *buffer 
          If MultiByteToWideChar_(#CP_ACP, 0, @ShellLinkFile, -1, *buffer, #MAX_PATH) 
            If PersistFile\Load(*buffer, 0) = #S_OK 
              If ShellLink\Resolve(0, 1) = #S_OK 
                RtlZeroMemory_(*buffer, #MAX_PATH) 
                ShellLink\GetPath(*buffer, #MAX_PATH, 0, 0) 
                result = PeekS(*buffer) 
              EndIf 
            EndIf 
          EndIf 
          FreeMemory(*buffer) 
        EndIf 
        PersistFile\Release() 
      EndIf 
      ShellLink\Release()  
    EndIf 
    CoUninitialize_() 
  EndIf
  
  ProcedureReturn result
  
  DataSection 
  CLSID_ShellLink:  Data.q $0000000000021401,$46000000000000C0
  IID_IShellLink:   Data.q $00000000000214EE,$46000000000000C0
  IID_IPersistFile: Data.q $000000000000010B,$46000000000000C0
  EndDataSection 
  
EndProcedure
Debug ShellLink_GetPath("c:\purebasic.lnk")