Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.031 c
6-1080647659
SAG
2004-03-30 15:54
2004.05.16
UDPSocket не получает сообщение


1-1083052555
WondeRu
2004-04-27 11:55
2004.05.16
Как отловить сообщение от OutputDebugString?


3-1081818147
Sirgfine
2004-04-13 05:02
2004.05.16
Сортировка в TTable


11-1069715731
APXi
2003-11-25 02:15
2004.05.16
Подскажите почему не работает? Applet.OnMessage


1-1083078734
td
2004-04-27 19:12
2004.05.16
про dll совсем элементарное %)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский