как изменить позицию ЛЮБОЙ иконки на рабочем столе?
От: NekitoSP  
Дата: 16.09.10 13:04
Оценка:
где вообще хранится такая информация?
Re: как изменить позицию ЛЮБОЙ иконки на рабочем столе?
От: DarkMaster Украина http://www.bdslib.at.ua
Дата: 16.09.10 14:02
Оценка:
Здравствуйте, NekitoSP, Вы писали:

NSP>где вообще хранится такая информация?


Где оно хранится я навскидку не скажу, но могу показать, как к этому добратся. Кстати, если в качестве шела используется что-то другое — фиг его знает, что получиься — скорее всего ничего.

// получаем SysListView32, т.к. это и есть то, на чем расположены иконки

function GetSysListView32: THandle;   
begin  
  Result := FindWindow('Progman', nil);   
  Result := FindWindowEx(Result, 0, nil, nil);   
  Result := FindWindowEx(Result, 0, nil, nil);   
end;   


// дальше работаем с этим ListView
 LVH:=GetSysListView32;
 ItemsCount := SendMessage(LVH, LVM_GETITEMCOUNT, 0, 0);    // сколько элементов
 for i := 0 to ItemsCount - 1 do  
  begin  
    nb := SendMessage(LVH, LVM_GETITEMTEXT,......);    // получаем текст
    SendMessage(LVH, LVM_GETITEMPOSITION, i,........); // получаем позицию  
  end;


Идея ясна?
WBR, Dmitry Beloshistov AKA [-=BDS=-]
Re[2]: как изменить позицию ЛЮБОЙ иконки на рабочем столе?
От: NekitoSP  
Дата: 16.09.10 16:56
Оценка:
Здравствуйте, DarkMaster, Вы писали:

DM>Здравствуйте, NekitoSP, Вы писали:


NSP>>где вообще хранится такая информация?


DM>Где оно хранится я навскидку не скажу, но могу показать, как к этому добратся. Кстати, если в качестве шела используется что-то другое — фиг его знает, что получиься — скорее всего ничего.


DM>
DM>// получаем SysListView32, т.к. это и есть то, на чем расположены иконки

DM>function GetSysListView32: THandle;   
DM>begin  
DM>  Result := FindWindow('Progman', nil);   
DM>  Result := FindWindowEx(Result, 0, nil, nil);   
DM>  Result := FindWindowEx(Result, 0, nil, nil);   
DM>end;   


DM>// дальше работаем с этим ListView
DM> LVH:=GetSysListView32;
DM> ItemsCount := SendMessage(LVH, LVM_GETITEMCOUNT, 0, 0);    // сколько элементов
DM> for i := 0 to ItemsCount - 1 do  
DM>  begin  
DM>    nb := SendMessage(LVH, LVM_GETITEMTEXT,......);    // получаем текст
DM>    SendMessage(LVH, LVM_GETITEMPOSITION, i,........); // получаем позицию  
DM>  end;   
DM>


DM>Идея ясна?


идея ясна, спасибо! не могли бы ее подсказать код изменения позиции?
Re[3]: как изменить позицию ЛЮБОЙ иконки на рабочем столе?
От: DarkMaster Украина http://www.bdslib.at.ua
Дата: 17.09.10 07:16
Оценка:
Здравствуйте, NekitoSP, Вы писали:

DM>>// дальше работаем с этим ListView

DM>> LVH:=GetSysListView32;
DM>> ItemsCount := SendMessage(LVH, LVM_GETITEMCOUNT, 0, 0); // сколько элементов
DM>> for i := 0 to ItemsCount — 1 do
DM>> begin
DM>> nb := SendMessage(LVH, LVM_GETITEMTEXT,......); // получаем текст
DM>> SendMessage(LVH, LVM_GETITEMPOSITION, i,........); // получаем позицию
DM>> end;
DM>>[/pascal]

DM>>Идея ясна?


NSP>идея ясна, спасибо! не могли бы ее подсказать код изменения позиции?


SendMessage(LVH, LVM_SETITEMPOSITION, i, .....);
WBR, Dmitry Beloshistov AKA [-=BDS=-]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.