![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
LVM_GETITEMPOSITION [D5, Win95/98]
Clift © (2004-02-17 14:39:00)////////////////////////////////////////////////////////
procedure TForm1.Timer1Timer(Sender: TObject);
var
Cur: TPoint;
hWind: THandle;
Clas: array[0..255] of char;
begin
GetCursorPos(Cur);
HWind:=WindowFromPoint(Cur);
GetClassName(HWind, Clas, SizeOf(Clas));
if Clas='SysListView32' then
SendMessage(hWind, LVM_SETITEMPOSITION, 0, MakeLong(Random(500), 100));
end;
//////////////////////////////////////////////////////
procedure TForm1.Timer1Timer(Sender: TObject);
var
Cur, ICONmk: TPoint;
hWind: THandle;
Clas: array[0..255] of char;
begin
GetCursorPos(Cur);
HWind:=WindowFromPoint(Cur);
GetClassName(HWind, Clas, SizeOf(Clas));
if Clas='SysListView32' then
SendMessage(hWind, LVM_GETITEMPOSITION, 0, Longint(@ICONmk))
end;
Всё делается для Рабочего стола и проверяется на нём.
Первый код работает нормально(При попадании курсора на рабочий стол иконка Мой компьютер "беспорядочно" перемещается)
Второй код при поподании курсора на Раб.ст. вызывает аварийное завершение работы Эксплорера с последующей его перезагрузкой
Собственно вопрос(проблема): Нужно узнать положение иконки "Мой комп." на рабочем столе...
Игорь Шевченко (2004-02-17 18:09:00) [1]Clift © (17.02.04 15:20)
Лучше бы ты что-то полезное написал..
Clift (2004-02-17 15:20:00) [2]>MBo
OK. Будем внедрятся ;)
Спасибо за разяснение.
MBo (2004-02-17 15:13:00) [3]Если при этом передаются адреса, то да.
Clift (2004-02-17 15:07:00) [4]>MBo
Надо внедряться в его адресное пространство
А LVM_HITTEST тоже требует внедрения в чужой процесс?
MBo (2004-02-17 14:53:00) [5]>SendMessage(hWind, LVM_GETITEMPOSITION, 0, Longint(@ICONmk))
здесь @ICONmk - адрес переменной в ТВОЕМ процессе.
В чужом же он не имеет смысла.
Надо внедряться в его адресное пространство. Рихтера читай.