J'aime utiliser de grandes icônes sur mon bureau, mais très souvent, ils reviennent à la taille normale, ne peut toujours pas comprendre pourquoi :). En tant que programmeur, je décide d'écrire mon propre utilitaire pour enregistrer et restaurer les positions des icônes. Googler autour ne donne pas beaucoup d'informations. Est-ce que quelqu'un peut me donner un indice ou un lien vers un point de départ?Comment obtenir/définir la position et la taille des icônes du bureau à partir de Delphi?
Répondre
Vous ne pouvez pas être fiable. Raymond Chen explains why dans ce post. Fondamentalement, c'est parce qu'il n'y a aucun moyen de forcer une icône à être dans un emplacement spécifique sur le bureau, ce qui signifie qu'il n'y a aucun moyen de spécifier où une icône individuelle sera positionnée.
utilitaire gratuit: http://winfuture.de/news,21608.html
merci, mais je veux écrire mon propre utilitaire, juste pour l'expérience. – kuaw26
lu ce post, peut-être cela aide :) save-and-restore-desktop-icon-positions
À un moment donné dans le temps, à savoir Win2K/WinXP sûr, le bureau était en fait un type de ListView. Je ne suis pas sûr que ce soit encore dans le nouveau système d'exploitation. Sachant qu'il était facile d'obtenir le handle du bureau et d'utiliser les fonctions d'api de LV manipuler cela en faisant des choses comme l'affichage avec le style de rapport.
Voici deux fonctions qui vous montrent comment commencer à manipuler le bureau.
Remarque: Je sais que cela fonctionne jusqu'à WinXP, et je suppose que cela fonctionnera pour Vista et Win7 mais je ne l'ai pas testé. En utilisant ces exemples, il ne devrait pas vous falloir longtemps pour écrire un ensemble de fonctions pour obtenir/définir les positions des icônes de tout sur le bureau.
procedure ReportStyleDesktop;
var
wHandle : THandle;
wStyle : Longint;
begin
wHandle := GetDesktopWindow;
if wHandle <> 0 then
wHandle := FindWindowEx(wHandle, 0, 'Progman', 'Program Manager');
if wHandle <> 0 then
wHandle := FindWindowEx(wHandle, 0, 'SHELLDLL_DefView', 0);
if wHandle <> 0 then
wHandle := FindWindowEx(wHandle, 0, 'SysListView32', 0);
if wHandle <> 0 then
begin
wStyle := GetWindowLong(wHandle, GWL_STYLE);
wStyle := wStyle and (not LVS_TYPEMASK);
wStyle := wStyle or LVS_REPORT or LVS_ICON;
SetWindowLong(wHandle, GWL_STYLE, wStyle);
end;
end;
procedure NormalStyleDesktop;
var
wHandle : THandle;
wStyle : Longint;
begin
wHandle := GetDesktopWindow;
if wHandle <> 0 then
wHandle := FindWindowEx(wHandle, 0, 'Progman', 'Program Manager');
if wHandle <> 0 then
wHandle := FindWindowEx(wHandle, 0, 'SHELLDLL_DefView', 0);
if wHandle <> 0 then
wHandle := FindWindowEx(wHandle, 0, 'SysListView32', 0);
if wHandle <> 0 then
begin
wStyle := GetWindowLong(wHandle, GWL_STYLE);
wStyle := wStyle and (not LVS_TYPEMASK);
wStyle := wStyle or LVS_ICON;
SetWindowLong(wHandle, GWL_STYLE, wStyle);
end;
end;
merci, c'est bon point de commencer – kuaw26
- 1. Obtenir la position des icônes sur le bureau
- 2. Enregistrer et restaurer la position et la taille du formulaire
- 3. Lecture des positions des icônes du bureau à partir du registre
- 4. Obtention des emplacements des icônes de bureau?
- 5. Application de bureau Flex: comment positionner les éléments par rapport à la taille de la fenêtre
- 6. changer la taille de l'étiquette et la position d'exécution tableview
- 7. Taille et position du formulaire C#
- 8. Comment réduire la taille de uiscrollview à partir du haut
- 9. delphi supprimer. et .. à partir du chemin
- 10. Où le système stocke-t-il la position des icônes?
- 11. Dessiner et effacer la toile de bureau avec Delphi
- 12. Augmentation de la taille du bureau Windows compliqué
- 13. Windows sélectionne une mauvaise icône à partir du fichier multi-icônes et restaure automatiquement la taille correcte
- 14. Comment puis-je manipuler par programmation les emplacements des icônes du bureau Windows?
- 15. Requête relative à la position du menu déroulant par rapport à la taille du navigateur
- 16. Déterminer la taille du support à partir du fichier ppd
- 17. enregistrer la taille maximale et la forme sur un TForm Delphi
- 18. Comment puis-je contrôler la taille et la position d'une nouvelle fenêtre de processus à partir d'une application WinForms?
- 19. Afficher la position dans DBGrid lors du défilement dans Delphi
- 20. API Appel pour l'organisation des icônes sur le bureau
- 21. afficher/masquer les icônes du bureau de l'application C++
- 22. Raccourcis du bureau Linux et icône à partir de l'installation
- 23. AvalonDock: contrôle de la position du séparateur
- 24. Comment masquer les icônes du bureau en double-cliquant sur le bureau en utilisant C#
- 25. Comment puis-je modifier la taille de police des éléments du menu principal dans Delphi?
- 26. Emplacement des icônes de bureau disponibles pour Live Wallpapers? (android)
- 27. Déterminer la police et la taille du texte à partir du HTML
- 28. comparaison de la taille du code et de la taille de la source
- 29. dessin sous les icônes sur le bureau
- 30. Comment empêcher un chargeur de modifier la position et la taille de mes applications?
Merci, très intéressant! – kuaw26