
j'ai un code intéressant concernant le positionnement des icones:
Code : Tout sélectionner
EnableExplicit
Global hProcess.l,ItemCount.l
Macro XMakeLong(a,b)
(a | b <<16)
EndMacro
Procedure GetSysLVHwnd()
Protected h.l
;h=FindWindow_("shell_traywnd","")
h=FindWindow_("Progman",0)
h=FindWindowEx_(h,0,"SHELLDLL_defVIEW",0)
ProcedureReturn FindWindowEx_(h,0,"SysListView32",0)
EndProcedure
Procedure IsWindowsNT()
Protected OS.OSVERSIONINFO
OS\dwOSVersionInfoSize=SizeOf(OSVERSIONINFO)
GetVersionEx_(OS)
If OS\dwPlatformId=2
ProcedureReturn 1
Else
ProcedureReturn 0
EndIf
EndProcedure
Procedure GetMemSharedNT(pid,memSize)
hProcess=OpenProcess_(#PROCESS_VM_OPERATION | #PROCESS_VM_READ | #PROCESS_VM_WRITE,0,pid)
ProcedureReturn VirtualAllocEx_(hProcess,0,memSize,#MEM_RESERVE | #MEM_COMMIT,#PAGE_READWRITE)
EndProcedure
Procedure FreeMemSharedNT(hP,MemAddress,memSize)
VirtualFreeEx_(hP,MemAddress,memSize,#MEM_RELEASE)
CloseHandle_(hP)
EndProcedure
Procedure SaveIconPositions()
Protected h,dwSize,lpSysShared,pid,lwritten,i,gh
h=GetSysLVHwnd()
GetWindowThreadProcessId_(h,@pid)
ItemCount=SendMessage_(h,#LVM_GETITEMCOUNT,0,0);:Debug ItemCount
; #LVM_GETITEMTEXT
h=GetSysLVHwnd()
Global Dim ptOriginal.POINT(ItemCount)
dwSize=SizeOf(POINT)
If IsWindowsNT()
lpSysShared=GetMemSharedNT(pid,dwSize)
WriteProcessMemory_(hProcess,lpSysShared,ptOriginal(0),dwSize,@lwritten)
For i=0 To ItemCount - 1
SendMessage_(h,#LVM_GETITEMPOSITION,i,lpSysShared)
ReadProcessMemory_(hProcess,lpSysShared,ptOriginal(i),dwSize,@lwritten)
;Debug Hex(ptOriginal(i)\X)+","+Hex(ptOriginal(i)\Y)
Debug Str(ptOriginal(i)\X)+","+Str(ptOriginal(i)\Y)
SendMessage_(h,#LVM_GETITEMTEXT,i,lpSysShared)
gh=ReadProcessMemory_(hProcess,lpSysShared,ptOriginal(i),dwSize,@lwritten)
Debug gh
Next i
FreeMemSharedNT(hProcess,lpSysShared,dwSize)
EndIf
EndProcedure
Procedure RestoreIconPositions()
Protected h,i
h=GetSysLVHwnd()
For i=0 To ItemCount-1
SendMessage_(h,#LVM_SETITEMPOSITION,i,XMakeLong(ptOriginal(i)\x,ptOriginal(i)\y))
Next
EndProcedure
SaveIconPositions()
RestoreIconPositions()
donc si quelqu'un aurais la soluce sa serait trop bien

enfait, il ma semblé que @Dobro cherchait un moyen pour récuperer les positions XY des icones de son bureau, ou peut être que jme trrompe de personne

en touts cas merci à vous tous
