Форум: "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.032 c