Il y a 2 ans, javais fait un script qui permettait aux utilisateurs du réseau de sauvegarder et restaurer la disposition des icônes sur le bureau.
une partie du code:
Code : Tout sélectionner
#include <GuiListView.au3>
; récupération du handle du bureau
$H_desktop = ControlGetHandle("[CLASS:Progman]", "", "SysListView321")
MsgBox(0,@ScriptName,$H_desktop)
MsgBox(0,@scriptname,_GUICtrlListView_GetItemCount($H_desktop))
; liste des éléments, et sauvegarde de leur position dans le fichier ini.
For $nIdx = 0 To _GUICtrlListView_GetItemCount($H_desktop) - 1
$sIconText = _GUICtrlListView_GetItemText($H_desktop, $nIdx)
if @error Then MsgBox(0, @scriptname, "pb lecturetexte icone" & $sIconText)
$aPos = _GUICtrlListView_GetItemPosition($H_desktop, $nIdx)
If @error Then MsgBox(0, @ScriptName, "Il y a eu une erreur lors de la lecture la position de l'icône " & $sIconText)
MsgBox(0,@ScriptName,$nIdx&@crlf&$sIconText&@crlf&$aPos[0]&":"&$aPos[1])
Nextle problème, c'est que pour faire fonctionner ce script sur les Windows 7 64bits, il faut que je le compile en 64 bits.
Le parc Stations étant hétérogène 32 et 64, il est beaucoup plus simple d'avoir un seul exécutable, qui test l'archi de l'os et envois les commandes en fonction.
la fonction _GUICtrlListView_GetItemText renvois un champs vide sur le 64 quand le script est compilé en 32.
Sur les 64, le handle du bureau est
0x00010164 compilé en 32
0x0000000000010164 compilé en 64
Dans les 2 cas, on compte bien le bon nombre d'icones.
Si vous avez une idée....
merci



