Page 1 sur 1
RACCOURCI sur le bureau
Publié : mer. 06/sept./2006 16:41
par LOULOU25
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
Publié : mer. 06/sept./2006 17:42
par poshu
euh... aller dans les propriétés du raccourci?
Publié : mer. 06/sept./2006 18:00
par Dr. Dri
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
Publié : mer. 06/sept./2006 18:31
par Flype
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")
Publié : mer. 06/sept./2006 19:08
par nico
Je reconnais cette procédure que je t'ai posté y a deux ans déjà!
Je l'avais juste adapté en Pure, il est complètement pompé du Web.
Publié : mer. 06/sept./2006 19:25
par LOULOU25
nico a écrit :Je reconnais cette procédure que je t'ai posté y a deux ans déjà!
Je l'avais juste adapté en Pure, il est complètement pompé du Web.
Il semble qu'elle fonctionne de maniére aléatoire