Сохранение и восстановление Desktop

Kotъ-Begemotъ
Дата: 11.11.2007 01:14:20
вот вроде видел подобные программы - для сохранения и восстановления состояния Рабочего стола, то есть ярлыков и программ на нём. А сунулся поискать - что-то одни шарварные или триальные вещи попадаются. Неужто всё так сложно? Вот думаю, может самому написАть под свои же нужды? Кто сталкивался? С чего начать посоветуете? Не очень я с Shell знаком, поэтому и спрашиваю совета... По идее десктоп - это объект? А ярлыки на нём тоже, в свою очередь объекты нумерованные, которые можно перебрать примерно похожим образом:
for i := 0 to DeskTop.ComponentCount - 1 do
 begin
  TxtFile.Write(Components[i].Name);
  TxtFile.Write(Components[i].Top);
  TxtFile.Write(Components[i].Left);
 end;

И потом так же перебирая в цикле и находя соответствующие ярлыки присваивать им Top и Left ? Или тут что-то другое? Знатоки Shell, подскажите, плиз!
wellwell
Дата: 11.11.2007 05:18:53
Найди книжку Programming Applications for Microsoft Windows / Jeffrey Richter, там есть пример проги с исходником The Desktop Item Position Saver (DIPS) Utility.
Kotъ-Begemotъ
Дата: 11.11.2007 22:24:38
В общем раз спецов нет, скажу. что попробовал, убиделся, что Desktop в виндах реализован через такую ж... что ужас... Даже позицию иконок не установишь простым казалось бы сообщением с LVM_GETITEMPOSITION хотя судя по доке к API можно...
Нашел пример, правда не пробовал, но может кому пригодится...
Kotъ-Begemotъ
Дата: 12.11.2007 01:20:37
Кстати, вышеупомянутый пример скомпилил, работает нормально, проверил. Надо только будет функцию UnDo реализовать, если после восстановления что-то не понравилось, и хочется вернуть как было. А так всё хорошо, буду юзать :)