Position des icônes sur le bureau [Résolu]

alvinp 168 Messages postés mardi 27 juillet 2004Date d'inscription 31 août 2011 Dernière intervention - 2 nov. 2007 à 10:48 - Dernière réponse : TheSaib 2369 Messages postés mardi 17 avril 2001Date d'inscription 26 décembre 2007 Dernière intervention
- 2 nov. 2007 à 14:55
Salut,

Je débute en Csharp mais je suis quand même un peu dedans, je suis sur un petit projet que les programmeurs confirmés seraient probablement faire sans problème!

En fait, je cache les icons du bureau (pour le moment avec le registre --> pas cool) et j'ai fait un control qui fera mon fichier.
Donc tout est bien rangé mais je ne sais pas comment je pourrais récupérer la position des icônes du bureau pour que l'utilisateur ne soit pas obligé de tout remettre par lui même!

Il me suffit d'un code qui me récupère ces informations pour y arriver mais moi et les API, c'est pas mon truc (si cela fonctionne avec API)!!

Merci d'avance

Pseudo :: PyroFrissons ou Mr Blagues
<hints id="hah_hints"></hints>
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
TheSaib 2369 Messages postés mardi 17 avril 2001Date d'inscription 26 décembre 2007 Dernière intervention - 2 nov. 2007 à 11:09
3
Merci
Tu fais un SendMessage sur le handle du bureau avec LVM_GETTITEMCOUNT comme paramètre ensuite tu boucle sur le nombre d'éléments en faisant un SendMessage avec LVM_GETITEMPOSITION en paramètre sur le handle du bureau .

Il te reste  pour obtenir les coordonnées à faire un CopyMemory de ton pointeur lparam.



::|The S@ib|::
MVP C#.NET

Merci TheSaib 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de TheSaib
alvinp 168 Messages postés mardi 27 juillet 2004Date d'inscription 31 août 2011 Dernière intervention - 2 nov. 2007 à 12:05
0
Merci
Je te remercie, très gentil et très rapide

Pseudo :: PyroFrissons ou Mr Blagues
<hints id="hah_hints"></hints>
Commenter la réponse de alvinp
alvinp 168 Messages postés mardi 27 juillet 2004Date d'inscription 31 août 2011 Dernière intervention - 2 nov. 2007 à 13:48
0
Merci
Je suis arrivé à avoir le handle mais le SendMessage qui renvoi le nombre d'icônes me donne tout le temps 0!

Voici mon code ::
int ItemText = 0;
int ItemPos = 0;
IntPtr hwnd = FindWindowEx(IntPtr.Zero, IntPtr.Zero, "ProgMan", "Program Manager");
if (hwnd != IntPtr.Zero)
{
    int ItemCount = SendMessage(hwnd, LVM_GETITEMCOUNT, 0, 0);
    MessageBox.Show("Handle :: " + hwnd.ToString() + " avec " + ItemCount + " icônes!");
    for(int i = 0; i < ItemCount; i++)
    {
        SendMessage(hwnd, LVM_GETITEMTEXT, i, ItemText);
        SendMessage(hwnd, LVM_GETITEMPOSITION, i, ItemPos);
        MessageBox.Show(hwnd.ToString() + " // n°" + i + " : " + ItemText + " de position : " + ItemPos);
    }
}else{
    MessageBox.Show("Handle du bureau détaché!");
    Application.Exit();
}
Fin du code

Aidez-moi à comprendre mon erreur!

Pseudo :: PyroFrissons ou Mr Blagues
<hints id="hah_hints"></hints>
Commenter la réponse de alvinp
TheSaib 2369 Messages postés mardi 17 avril 2001Date d'inscription 26 décembre 2007 Dernière intervention - 2 nov. 2007 à 14:55
0
Merci
ton handle ne pointe pas vers la bonne liste :




IntPtr hwnd= FindWindow("progman", null


);
hwnd= FindWindowEx(hwnd, IntPtr.Zero, "shelldll_defview", null


);
hwnd= FindWindowEx(hwnd, IntPtr.Zero, "syslistview32", null);





int ItemCount = SendMessage(hwnd, LVM_GETITEMCOUNT, 0, IntPtr.Zero);







::|The S@ib|::
MVP C#.NET
Commenter la réponse de TheSaib

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.