Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Position des icônes sur le bureau [ Windows / API ] (alvinp)

vendredi 2 novembre 2007 à 10:48:38 | Position des icônes sur le bureau

alvinp

Membre Club
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

vendredi 2 novembre 2007 à 11:09:05 | Re : Position des icônes sur le bureau

TheSaib

Administrateur CodeS-SourceS
Réponse acceptée !
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

vendredi 2 novembre 2007 à 12:05:47 | Re : Position des icônes sur le bureau

alvinp

Membre Club
Je te remercie, très gentil et très rapide

Pseudo :: PyroFrissons ou Mr Blagues

vendredi 2 novembre 2007 à 13:48:16 | Re : Position des icônes sur le bureau

alvinp

Membre Club
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

vendredi 2 novembre 2007 à 14:55:37 | Re : Position des icônes sur le bureau

TheSaib

Administrateur CodeS-SourceS
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



Cette discussion est classé dans : bureau, position, api, icônes


Répondre à ce message

Sujets en rapport avec ce message

Problème avec l'API SetSysColors [ par bob94700 ] Bonjour,   J'utilise la fonction suivante : SetSysColorsavec comme paramètre COLOR_BACKGROUND afin de changer la couleur de fond du bureau et à chaque les API windows et c# [ par otofraise ] Bonjour a tous,Habitue au c++, je debute avec c# et je dois dire que je suis pomme .J'aimerais utiliser les api windows mais voila, je ne retrouve pas mouse down + position de la souris ? debutant [ par jimmy69 ] Bonjour a tous ,debutant sous visual studio.net je me mets au langage c# ! pas facile du tout :-( !J'essaye de faire des actions en faisant un clic ga Lister les fonctions d'une dll non-managée [ par li9 ] Salut tout le monde, est-ce que quelqu'un aurait une idée de ce qu'il faudrait faire pour lister les fonctions( et leurs parametres ) d'une dll qui n' Espace libre CD-R /// CD-RW [ par MAQFAB ] Bonjour,Mon appli C# a besoin de connaître l'espace libre d'un CD.J'ai bossé avec l'API GetDiskFreeSpace et ça marche bien pour les disques durs, mais textbox determiner position curseur [ par emmanuel9 ] Bonjour, Quelqun serait t'il comme determiner la position du curseur dans un textbox ? J'ai bien essayé textbox_decimalControl1.set_SelectionLength(2) [C#] Placer UN comboBox dans une dataGridView [ par piefire ] Bonjour à tous, (Sous VS 2005 Beta2), je possède une dataGridView remplie par une dataTable. je voudrais pouvoir placer des comboBox a la place de ce utilisation de l'api getscrollinfo [ par Fildomen ] Salutj'éssaie d'utiliser cet api dans un prog ou je dois savoir la longueur du texte d'un rtb, voila le code mais ca marche po private <FONT color=#00 Extrait une image d'un film pour l'afficher dans une picturebox [ par astragoth66 ] Bonjour, Voila j'essaie d'extraire une image d'un films pour ensuite faire du traitement d'image dessus, mais j'aimerai afficher image par image dans Scroll + Problème [ par emmanuel9 ] Bonjour à tous, J'ai un panel scrollable et je voudrais  choisir la position du scroll. Que le curseur à droite se mette à la position ou je veux en


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,997 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.