Avatar billede kroning Nybegynder
09. december 2007 - 19:19 Der er 7 kommentarer og
1 løsning

Find desktop icon position

Har Googlet i lang tid men ikke fundet noget.

Hvordan finder man positionen af alle iconer på skrivebordet og hvordan ændre man på et icons position?

Skal virker i Window XP og Vista.
Avatar billede hrc Mester
09. december 2007 - 22:02 #1
Du vil altså ind og overstyre Explorerens kode. Gad vide om det også ligger som et API?

Måske kan det her lede dig i retning af klarsyn:

  http://delphi.about.com/od/kbwinshell/a/big_brother1.htm

Han leger en del med SystemParametersInfo:

  http://msdn2.microsoft.com/en-us/library/ms724947.aspx

... og den kan ellers ikke så lidt! Kunne du finde et handle til ikonen vil funktionen kunne give dig position og dimension. Måske kan linket hjælpe dig med at støve Windows Shell API'et igennem.

Lidt at starte med. Det tager sikkert ikke ret lang tid at støve MDSN igennem...
Avatar billede hrc Mester
09. december 2007 - 22:12 #2
At stien til nogle at indstillingerne, i registreringsdatabasen, er her behøver jeg vel nok ikke nævne:

  HKEY_USERS\.DEFAULT\Control Panel\Desktop\WindowMetrics

Kan man finde ud af hvilke dll-filer exploreren bruger, se hvilke der er loadede når man flytter rundt på ikoner? Derved kan man måske spore sig ind på noget. Bare en idé - hvordan aner jeg ikke.
Avatar billede kroning Nybegynder
09. december 2007 - 22:28 #3
Det jeg vil er at lave en IconSaver, altså et lille program der husker hvor mine ikoner på skrivebordet skal være i forskellige opløsninger. Og til det har jeg brug for at kunne finde positionen på alle ikoner og kunne sætte positionen på dem.
Avatar billede kroning Nybegynder
09. december 2007 - 22:47 #4
Tror jeg måske har fundet et sted i regbasen hvor det gemmes:
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Bags\1\Desktop
Avatar billede kroning Nybegynder
10. december 2007 - 01:22 #5
Man kan åbenbart bruge LVM_GETITEMPOSITION til det, der er en her der har lavet det i VB.:
http://www.codeguru.com/vb/controls/vb_shell/article.php/c3055/
Avatar billede eht Nybegynder
08. januar 2008 - 22:54 #6
Jeg har brugt noget af følgende kode til at holde styr på ikonerne på skrivebordet, så ikonerne ikke flytter sig efter at mit program har ændret skærmindstillingen ved opstart og sat den tilbage ved nedlukning. Koden til XP virker vist også i Vista.

http://www.swissdelphicenter.ch/torry/showcode.php?id=1897
Avatar billede kroning Nybegynder
12. januar 2008 - 19:37 #7
eht> Det ser ud til at virker, smid et svar.
Avatar billede eht Nybegynder
13. januar 2008 - 10:26 #8
Et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester