Форум: "WinAPI";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизLVM_GETITEMPOSITION Найти похожие ветки
← →
Clift © (2004-02-17 14:39) [0]////////////////////////////////////////////////////////
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;
Всё делается для Рабочего стола и проверяется на нём.
Первый код работает нормально(При попадании курсора на рабочий стол иконка Мой компьютер "беспорядочно" перемещается)
Второй код при поподании курсора на Раб.ст. вызывает аварийное завершение работы Эксплорера с последующей его перезагрузкой
Собственно вопрос(проблема): Нужно узнать положение иконки "Мой комп." на рабочем столе...
← →
MBo © (2004-02-17 14:53) [1]>SendMessage(hWind, LVM_GETITEMPOSITION, 0, Longint(@ICONmk))
здесь @ICONmk - адрес переменной в ТВОЕМ процессе.
В чужом же он не имеет смысла.
Надо внедряться в его адресное пространство. Рихтера читай.
← →
Clift © (2004-02-17 15:07) [2]>MBo
Надо внедряться в его адресное пространство
А LVM_HITTEST тоже требует внедрения в чужой процесс?
← →
MBo © (2004-02-17 15:13) [3]Если при этом передаются адреса, то да.
← →
Clift © (2004-02-17 15:20) [4]>MBo
OK. Будем внедрятся ;)
Спасибо за разяснение.
← →
Игорь Шевченко © (2004-02-17 18:09) [5]Clift © (17.02.04 15:20)
Лучше бы ты что-то полезное написал..
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.031 c