![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
получить координаты иконок на рабочем столе! [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.