![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
![]() Вот когда-то начал писать прогу наподобие статбара - она сидит себе снизу рабочего стола, показывает нагрузку проца, памяти, сетевой траффик и т.п.
Дело в том, сто при запуске она (оригинальный статбар) как-бы "поднимает" нижнюю часть десктопа так, что все окна по боттому теперь выше (тоесть он не перекрывает окна). Само поднимание я организовал через: Код:
Procedure SetDesktopSize(const r:Trect); begin SystemParametersInfo(SPI_SETWORKAREA, 0, @r, 0); end; где r - размер новой рабочей области, а потом поднял все окна процедурой Код:
Procedure upAllWindows(const bottom:integer; reject:hwnd=0); var Wnd:HWND; rct:Trect; newtop,newheight:integer; begin Wnd:=FindWindow(NIL,NIL); While (Wnd<>0) do Begin if ((IsWindow(Wnd)) and (not IsIconic(WnD)) and (IsWindowVisible(WnD))) and (Wnd<>reject) then GetWindowRect(Wnd,Rct); if (rct.Bottom>bottom)and (rct.Bottom-rct.Top>10) and (not IsRectEmpty(rct)) and (iszoomed(wnd)) then begin newtop:=rct.top-(rct.Bottom-bottom); if newtop<0 then newtop:=0; newheight:=bottom-newtop; movewindow(wnd,rct.Left,newtop,rct.Right-rct.Left,newheight,false); end; Application.ProcessMessages; Wnd:=GetNextWindow(Wnd,GW_HWNDNEXT); end; end; Но проблема в том, что иконки на раб. столе не поднимаются. Мож кто подскажет как можно получить доступ к иконкам раб. стола, чтобы иметь возможность их поднимать/опускать, или, если есть, лучший вариант таковой реализации (желательно на WinApi и под WindowsXp-Windows7) Заранее спасибо прога |
#2
|
||||
|
||||
![]() Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
YVitaliy (24.12.2011)
|