Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

HooK на WindowCreate !   Найти похожие ветки 

 
DoG ©   (2004-03-21 16:55) [0]

Здравствуйте !

Проблема такая! Как отловить WindowCreate Что нить с ним сделать ? Делая так и никак не реагирует может что то забыл :(ето кусок из длл):

function ShellProc(code : integer; wParam : word; lParam : longint) : longint; stdcall;
var
s : PChar;
begin
 if code = HSHELL_WINDOWCREATED then
 begin
   Hndl2 := TMsg(Pointer(wParam)^).message ;
   GetWindowText(Hndl2,S,100);
   ShowMessage(s);
 end;
Result:= CallNextHookEx(SysHook, Code, wParam, lParam);
end;


 
VMcL ©   (2004-03-21 20:54) [1]

Hndl2 := wParam;


 
DoG ©   (2004-03-22 17:40) [2]

Все равно не работает !


 
DeadMeat ©   (2004-03-22 17:52) [3]

> DoG ©   (22.03.04 17:40)
А остальное показать нельзя...??


 
Игорь Шевченко ©   (2004-03-22 17:53) [4]


> function ShellProc(code : integer; wParam : word; lParam
> : longint) : longint; stdcall;


function ShellProc(code : integer; wParam : Cardinal; lParam
: longint) : longint; stdcall;


 
DoG ©   (2004-03-23 17:02) [5]

function ShellProc(code : integer; wParam : word; lParam : longint) : longint; stdcall;
var
s : PChar;
begin
 if code = HSHELL_WINDOWCREATED then
 begin
   Hndl2 := wParam;//TMsg(Pointer(wParam)^).message ;
   GetWindowText(Hndl2,S,100);
   ShowMessage(s);

Result:= CallNextHookEx(SysHook, Code, wParam, lParam);
end;

procedure hook(switch : Boolean) export; stdcall;
begin
 if switch=true then
 begin
   { Устанавливаю HOOK, если он не установлен (switch=true). }
   SysHook := SetWindowsHookEx(WH_SHELL, @ShellProc, HInstance, 0);

   if SysHook <> 0 then
       MessageBox(0, "HOOK1 установлен !", "Message from Exampel1/Process1", 0)
     else
       MessageBox(0, "HOOK1 установить не удалось !", "Message from Exampel1/Process1", 0);

 end
 else
 begin

if UnhookWindowsHookEx(SysHook) then
     MessageBox(0, "HOOK1 снят !", "Message from Exampel1/Process1", 0)
   else
     MessageBox(0, "HOOK1 снять не удалось !", "Message from Exampel1/Process1", 0);

   SysHook := 0;
 end;
end;

exports hook;

begin
end.


 
DoG ©   (2004-03-23 20:19) [6]

Удалено модератором
Примечание: Создание пустых сообщений


 
Игорь Шевченко ©   (2004-03-23 22:18) [7]

DoG ©   (23.03.04 17:02)

1) function ShellProc(code : integer; wParam : Cardinal; lParam
: longint) : longint; stdcall;

2)
> function ShellProc(code : integer; wParam : word; lParam
> : longint) : longint; stdcall;
> var
> s : PChar;
> begin
>  if code = HSHELL_WINDOWCREATED then
>  begin
>    Hndl2 := wParam;//TMsg(Pointer(wParam)^).message ;
>    GetWindowText(Hndl2,S,100);
>    ShowMessage(s);>
> Result:= CallNextHookEx(SysHook, Code, wParam, lParam);
> end;


Как ты думаешь, что у тебя будет в выделенном фрагменте текста ?
Если ты внутри обработки создания окна создаешь еще одно окно...


 
RyDmi   (2004-03-23 22:57) [8]

Удалено модератором
Примечание: Задай свой вопрос в отдельной ветке


 
DoG ©   (2004-03-24 09:38) [9]

Но так ведь работает !function SysMsgProc(code : integer; wParam : Cardinal; lParam : longint) : longint; stdcall;
var
s : PChar;
begin
 if code = HC_ACTION  then
 begin
  if TMsg(Pointer(lParam)^).message = WM_RBUTTONDOWN then
    begin
      GetCursorPos(XY);
      ShowMessage(IntToStr(XY.X)+":"+IntToStr(XY.Y));
      Hndl := WindowFromPoint(XY);;
      ShowMessage(IntToHex(Hndl,2));
      SendMessage(Hndl,WM_CHAR,ord("A"),0);
    end;
 end;
Result:= CallNextHookEx(SysHook, Code, wParam, lParam);
end;


 
Игорь Шевченко ©   (2004-03-24 10:04) [10]

DoG ©   (24.03.04 09:38)

А что, хук на мышь или на сообщения и создание окна это одно и то же ?

КНИГИ ЧИТАТЬ! До полного просветления.

---
LMD


 
GrayFace ©   (2004-03-25 11:26) [11]

По-моему, надо делать S:=AllocMem(100);



Страницы: 1 вся ветка

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
1-1083004080
Nvart
2004-04-26 22:28
2004.05.16
Ошибка при чтении потока


1-1083426139
Viner
2004-05-01 19:42
2004.05.16
Возможность вставки рисунков


3-1082704510
huyone
2004-04-23 11:15
2004.05.16
Индексировать файл Foxpro DBASE III из программы?


4-1080281876
AntiKiller
2004-03-26 09:17
2004.05.16
Почему не работает writeConsoleInput


6-1079716680
rulezz
2004-03-19 20:18
2004.05.16
Delphi + indy + post