Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

получить координаты иконок на рабочем столе! [D7, WinXP]


SergeyDon ©   (2004-12-02 08:56:00) 

...
uses
ShellApi, Windows, CommCtrl, Classes;

var
 hIcos:THandle;
 icoCount,I:integer;
 XY:TPoint;
...
function GetDesktopListViewHandle: THandle;
var
S: string;
begin
SetLength(S, 40);
Result := FindWindow('ProgMan', nil);
Result := GetWindow(Result, GW_CHILD);
Result := GetWindow(Result, GW_CHILD);
GetClassName(Result, PChar(S), 39);
if PChar(S) <> 'SysListView32' then
  Result := 0;
end;
...
begin
hIcos:=GetDesktopListViewHandle;
icoCount:=ListView_GetItemCount(hIcos);
...
for i:=0 to icoCount-1 do
begin
 ListView_GetItemPosition(hIcos,i,XY); //тут ошибка память неможет быть write!!!
...
end;

все перепробывал нехочет записывать текущие координаты иконок рабочего стола.
изменение координат все ОК!
ListView_SetItemPosition(hIcos,i,Random(1024) ,Random(768));


Leonid Troyanovsky   (2004-12-02 11:48:00) [1]


> VMcL ©   (02.12.04 10:44) [2]

> Для такой задачи можно обойтись и без внедрения DLL:


Там, где есть VirtualAllocEx - можно.
Если посмотреть все обсуждение можно увидеть и этот вариант:

http://groups.google.com/groups?selm=39BE285D.8DDE04E%40eco-pro.ru

--
С уважением, LVT.


ответ был тут   (2004-12-02 10:55:00) [2]

http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=1013434997&n=15

to: VMcL ©
Спасибо за ссылочку! Всем советую прочесть!!!


VMcL   (2004-12-02 10:44:00) [3]

>> Leonid Troyanovsky  (02.12.04 09:43) [1]

Для такой задачи можно обойтись и без внедрения DLL:
http://igp.org.ua/vmcl/?id=view_article&aid=1


Leonid Troyanovsky   (2004-12-02 09:43:00) [4]


> SergeyDon   (02.12.04 08:56)  

> все перепробывал нехочет записывать текущие координаты иконок
> рабочего стола.


http://groups.google.com/groups?selm=39C0ACE7.AFB74ED%40eco-pro.ru

 там от library rpbufalloc отвалился кусок:

exports
 Inject name 'Inject',
 Reject name 'Reject';

begin
 dllproc := @Dllmain;
 DllMain(DLL_PROCESS_ATTACH);
end.


--
С уважением, LVT.


Наверх

Титульная страница Поиск, карта сайта Написать письмо