![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Cобытия курсора мышки.
hub00 © (2008-05-31 17:43:00)Вопрос.
Во время перемещения курсора мышки над текстом,ссылкой или кнопкой в окне любой программы, курсор меняет иконку (стрелка, рука, итд) происходит событие.
Как можно выполнить еще что-то кроме изменения иконки?
Другое действие, которое нужно мне.
Какая функция за это отвечает?
Спасибо.
Leonid Troyanovsky (2008-06-03 18:29:00) [1]
> Leonid Troyanovsky © (03.06.08 18:27) [51]
Sorry, хотел продолжить, но промахнулся.
> HookHandle := SetWindowsHookEx(WH_CALLWNDPROCRET, @HookProc,
> HInstance, 0);
Почему же 0? Ну, или, сажем, HInstance.
--
Regards, LVT.
Leonid Troyanovsky (2008-06-03 18:27:00) [2]
> hub00 © (03.06.08 15:18) [49]
> Ошибка чтения памяти. Вылетают все приложения которые были
> активны.
Любопытно.
А как же их всех угораздило быть активными?
> function HookProc(Code: integer; WParam: word; LParam: Longint):
> Longint; stdcall;
> begin
> if Code >= 0 then begin
> result := 0;
> with Form1 do
Ловко придумано,
но непонятно: зачем же тут Form1.
Игорь Шевченко (2008-06-03 18:05:00) [3]
> procedure TForm1.FormCreate(Sender: TObject);
> begin
> HookHandle := SetWindowsHookEx(WH_CALLWNDPROCRET, @HookProc,
> HInstance, 0);
> end;
> with Form1 do
> case TMsg(Pointer(lParam)^).message of
> WM_SETCURSOR : ShowMessage('Сообщение получено.');
> end;
> end;
Статьи про хуки прочитай, чего там можно, а чего нельзя
hub00 (2008-06-03 15:18:00) [4]Ошибка чтения памяти. Вылетают все приложения которые были активны.
Листинг :
var
HookHandle: hHook;
function HookProc(Code: integer; WParam: word; LParam: Longint): Longint; stdcall;
begin
if Code >= 0 then begin
result := 0;
with Form1 do
case TMsg(Pointer(lParam)^).message of
WM_SETCURSOR : ShowMessage('Сообщение получено.');
end;
end;
result := CallNextHookEx(HookHandle, code, WParam, LParam);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
HookHandle := SetWindowsHookEx(WH_CALLWNDPROCRET, @HookProc, HInstance, 0);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
if HookHandle <> 0 then
UnhookWindowsHookEx(HookHandle);
end;
hub00 (2008-06-02 00:45:00) [5]Выходит нет ничего не реального.
SergeyIT (2008-06-02 00:40:00) [6]
> Реально стоящие вещи человек изложил.
Для нереальных задач...
hub00 (2008-06-02 00:33:00) [7]А лучше все удалите? Реально стоящие вещи человек изложил.
Я не понимаю такого...
SergeyIT (2008-06-02 00:20:00) [8]
> что ж это за сайт такой интересный?
Очень странная задачка
(2008-06-02 00:15:00) [9]Удалено модератором
hub00 (2008-06-02 00:08:00) [10]А если в связке использовать компонент idHTTP там все можно вписать что хочется.
hub00 (2008-06-02 00:04:00) [11]Способ замечательный. Спасибо большое ничего сказать!
Есть такие сайты которые могут ругаться на версию браузера или его название.
В свойствах вроде нет поля userAgent так бы вписал что нужно и хорошо.
(2008-06-01 23:57:00) [12]Удалено модератором
hub00 (2008-06-01 23:54:00) [13]"Если работаем в нашей проге, то устанавливаем фокус для страницы, загрузившейся в TWebbrowser:
Webbrowser1.SetFocusToDoc;"
А если к примеру не в нашей программе (Mozilla)?
Как тогда?
(2008-06-01 23:39:00) [14]Удалено модератором
SergeyIT (2008-06-01 23:35:00) [15]Для проверки хуков у MS была программка (hooktest как-то) - в ней можно было все попробовать.
Я подобное делал через playback (для выставки - демонстрация работы связки нескольких программ под Вин3.11, давно было)
Вообще-то решение зависит от условий задачи, которые нам неизвестны.
Что за программа, ссылки? Если нажать на ссылку ведь может появиться новое окно, программа/диалог и что тогда делать?
hub00 (2008-06-01 23:15:00) [16]CURSOR, ты прав для этого. Поделись пожалуйста.
(И причем тут кривые руки как умею так и делаю.)
SergeyIT, ок.
SergeyIT (2008-06-01 23:08:00) [17]
> а каким?
Ищите...
(2008-06-01 22:56:00) [18]Удалено модератором
hub00 (2008-06-01 22:48:00) [19]SergeyIT, а каким?
hub00 (2008-06-01 22:47:00) [20]Ну не работает оно с табом и все.
Я что против.