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

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

Cобытия курсора мышки.


Страницы:   1 2 3

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]

Ну не работает оно с табом и все.
Я что против.


Страницы:   1 2 3

Наверх

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