28. november 2003 - 11:59Der er
3 kommentarer og 1 løsning
Holde styr på ikoner på skrivebordet
Jeg lavet et multimedie-program. Når man laver et nyt projekt vælger man hvilken skærmindstilling projektet skal vis i. Når projektet så afvikles bliver skærmindstillingen automatisk ændret hvis den er forkert. Når projektet lukkes stilles skærmen tilbage.
Nu er mit problem: Hvis skærmindstillingen ændres til en lavere opløsning flyttes der rundt på på ikonerne på skrivebordet, også når skærmindstillingen er sat tilbage.
Kan man på en eller anden måde registrere hvor ikonerne skal være inden skærmændringen, og så sætte dem på plads bagefter.
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Jeg skifter ikke via DirectX men bruger denne funktion:
function ChangeResolution(XResolution, YResolution, Depth: DWORD): BOOL; var DevMode: TDeviceMode; i: integer; begin Result := False; i := 0; while EnumDisplaySettings(nil, i, DevMode) do with DevMode do begin if (dmPelsWidth = XResolution) and (dmPelsHeight = YResolution) and (dmBitsPerPel = Depth) then if ChangeDisplaySettings(DevMode, CDS_UPDATEREGISTRY) = DISP_CHANGE_SUCCESSFUL then begin Result := True; SendMessage(HWND_BROADCAST, WM_DISPLAYCHANGE, SPI_SETNONCLIENTMETRICS, 0); Application.ProcessMessages; break; end; Inc(i); end; end;
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.