Déplacer les icônes rapidement

Résolu
larion Messages postés 140 Date d'inscription mercredi 28 avril 2004 Statut Membre Dernière intervention 21 juillet 2005 - 23 sept. 2004 à 13:01
larion Messages postés 140 Date d'inscription mercredi 28 avril 2004 Statut Membre Dernière intervention 21 juillet 2005 - 23 sept. 2004 à 18:56
Bonjour,

Je désire déplacer les icônes du bureau vers un répertoire et inversement mais très rapidement.

J'ai testé "MoveFile" (API), mais le temps de réaction à l'affichage est long (2 à 3 secondes).

5 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
23 sept. 2004 à 14:41
T'es obligé d'utiliser MoveFile, puis SHChangeNotify pour dire au systeme qu'il y a eu un changement.
3
larion Messages postés 140 Date d'inscription mercredi 28 avril 2004 Statut Membre Dernière intervention 21 juillet 2005
23 sept. 2004 à 18:56
Je pense également que l'on ne peut faire mieux avec cette méthode.
Cependant j'ai trouvé une alternative pour optimiser le déplacement pour plusieurs fichiers (icônes) :

SHFILEOPSTRUCT *FileOpStruct = new SHFILEOPSTRUCT();
FileOpStruct->hwnd = 0;
FileOpStruct->wFunc = FO_MOVE;
FileOpStruct->pFrom = "C:\\speedfan.lnk\0fichier2\0fichier3\0\0";
FileOpStruct->pTo = "C:\\Documents and Settings\\Larion\\Bureau\\speedfan.lnk\0 ";
FileOpStruct->fFlags = FOF_ALLOWUNDO | FOF_MULTIDESTFILES;
FileOpStruct->hNameMappings = 0;
FileOpStruct->lpszProgressTitle = "";
SHFileOperation((LPSHFILEOPSTRUCT) FileOpStruct);
SHChangeNotify(SHCNE_ALLEVENTS,SHCNF_DWORD,0,0);
delete FileOpStruct;

Cela évite de lancer plusieurs fois MoveFile. (Mais c'est la même chose)
Un grand merci. Je ne pense pas que j'aurais trouver le SHChangeNotify.
Surtout que cela fait un bon moment que je cherche.
3
larion Messages postés 140 Date d'inscription mercredi 28 avril 2004 Statut Membre Dernière intervention 21 juillet 2005
23 sept. 2004 à 16:33
Je ne suis pas sur, j'ai écris ce code pour mettre à jour le bureau :

SHChangeNotify(SHCNE_ATTRIBUTES,SHCNF_PATH,"C:\\Documents and Settings\\Larion\\Bureau",0);

En effet, sur le déplacement d'une icône je passe de 2-3 secondes à 1-2 secondes.
Mais cela reste toujours trop lent.
0
larion Messages postés 140 Date d'inscription mercredi 28 avril 2004 Statut Membre Dernière intervention 21 juillet 2005
23 sept. 2004 à 17:03
Je viens de trouver :

SHChangeNotify(SHCNE_UPDATEDIR,SHCNF_PATH,"C:\\Documents and Settings\\Larion\\Bureau",0);
> ~1 seconde

SHChangeNotify(SHCNE_UPDATEITEM,SHCNF_PATH,"C:\\Documents and Settings\\Larion\\Bureau\\icone.lnk",0);
> moins d'une seconde

C'est rapide, mais ce n'est pas encore cela...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
23 sept. 2004 à 18:15
Tu ne devrais pas trouver mieux
0
Rejoignez-nous