"Живой Desktop" — вариант использования Shell
Раздел Сокровищница |
Что это:Прикольное расширение Shellа. Назначение:Разовое применение с целью разрушить устоявшееся представление индивидума о незыблемости иконок на рабочем столе. Показания:
- WinNT4/Win2000 (для других не проверялось);
- Непосредственный доступ к жертве;
- D6 +/- 3 версии я думаю.
Внимание - это демонстрация, содержит как минимум одну ошибку приводящую к завершению работы Explorerа без сохранения данных через ~ 20 мин.
Предыстория: Работает у нас один парень все ничего вот только у него странная тяга к иконкам на рабочем столе что выражается в их не мерянном количестве и особо структурированном распределении (сложном и непонятном с полпинка). Как то раз, с утречка он включает комп и... О БОЖЕ !?!?!, по неизвестной причине, ОНИ (иконки - прядка 30~40 штук) были упорядочены!!! и выровнены!!! стандартным образом... что тут началось... (вырезано по требованию правозащитных организаций ) прям конец света :) в общем стены устояли. Парень наотрез отказался работать до тех пор пока не расставит все иконки в только ему ведомом порядке и в соответствии с распределением космических сил - ушел в нирвану на пол дня.
Ну и я, под впечатлением от силы воздействия иконок, решил написать прогу по их своеобразному упрядовачиванию в (как говорится) real-time :) Как сделано: После взвешивания цели и возможных средств доставки было выбрано - повесить на получение контекстного меню (Explorer файл/папка) дллку в которой собственно и осуществляется вся работа.
В качестве основы был взят пример \Borland\Delphi6\Demos\ActiveX\ShellExt\..
Реализовано три алгоритма поведения иконок - черви (Worms), частицы (Atoms) и мышь серая (Mouse).
- Worms: черви в виде цепочек иконок бегают по рабочему столу поедая друг друга увеличиваясь в длине.
- Atoms: мечутся по экрану с учетом связей между собой.
- Mouse: избегают курсора мыши.
- ContextM.pas - реализация IContextMenu
- DeskHelp.pas - получение хендла ListView рабочего стола
- UthDeskIcon.pas - алгоритмы по управлению иконками
- fsc.reg - регистрация в системе
- FtpSC32.dpr - проект дллки
- ReadMe.txt - хмм
Митронов Станислав