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

Вниз

Обработчик сообщений   Найти похожие ветки 

 
H@CkEi$t   (2007-01-03 20:39) [0]

Доброго времени суток!
Кто знает помогите! Мне нужен код обработчика закрытия чужих окон в системе и проверка его состояния(максимизировано, минимизировано...)


 
kaZaNoVa ©   (2007-01-03 21:12) [1]

внедряй код в него и все проблемы...
(пример был для обработки хот-кея окна:)

(внимание, в программе возможна неприятная лексика (когда-то писалась ввиде прикола))
важные функции пометил

library Project1;

uses
 Windows,Messages;

Var
SavedProc: pointer;
ThreadID,id:cardinal;
ready:boolean;

function GethWnd: HWND;
begin
result:= FindWindow(Pchar("SAS Window class"),Pchar("SAS window") );
end;

function MyWndProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
ready:=false;
  if  msg=WM_HOTKEY then  begin
// Поймали HOTKEY CAD (CSE) - выводим сообщение на десктоп "Default" и затем выходим
if( MAKELONG( MOD_CONTROL or MOD_ALT, VK_DELETE ) = lParam )then
begin
MessageBoxEx(0,"Ctrl + Alt + Del","Oblom c CAD"om !!!", MB_DEFAULT_DESKTOP_ONLY, 0 );
result:= 0;
ready:=True;
end;

if( MAKELONG( MOD_CONTROL or  MOD_SHIFT, VK_ESCAPE ) = lParam ) then
begin
MessageBoxEx(0,"Ctrl + Shift + Esc","Oblom c Dispetcherom"om !!!", MB_DEFAULT_DESKTOP_ONLY, 0 );
result:= 0;
ready:=True;
end;

if not ready then result:= CallWindowProc(SavedProc, hWnd, Msg, wParam, lParam);
                            end
else  result:= CallWindowProc(SavedProc, hWnd, Msg, wParam, lParam);

end;


procedure SetWndProc(hWnd: HWND);
begin
SavedProc:= pointer(SetWindowLong(hWnd, GWL_WNDPROC, cardinal(@myWndProc)));
end;


procedure UnSetWndProc(hWnd: HWND);
begin
SavedProc:= pointer(SetWindowLong(hWnd, GWL_WNDPROC, cardinal(SavedProc)));
end;

function thread:integer; stdcall;
begin
SetWndProc(GethWnd);

sleep(60*1000);

//PostMessage(HWND_BROADCAST,WM_HOTKEY,0, MAKELONG(MOD_CONTROL or MOD_ALT, VK_DELETE ) ); //CAD

UnSetWndProc(GethWnd);
sleep(10);
thread:=0;
CreateThread(nil,0,GetProcAddress(GetModuleHandle("kernel32"),"FreeLibrary"),poi nter(hInstance),0,id);
end;

begin
//MessageBoxEx(0,"Ctrl + Shift + Esc","FIGA2", MB_DEFAULT_DESKTOP_ONLY, 0 );
CreateThread(nil,0,@Thread,nil,0,ThreadID);
end.


 
kaZaNoVa ©   (2007-01-03 21:13) [2]

внедрять мона хуком


 
H@CkEi$t   (2007-01-03 21:19) [3]

а без хука и library"сов никак?


 
kaZaNoVa ©   (2007-01-03 21:25) [4]

H@CkEi$t   (03.01.07 21:19) [3]
ну еще мона внедрить код в память процесса ..

хотя есть вариант с низкоуровневыми хуками без DLL ....  

имхо а к чему вообще такая нестандартная задача? возможнопроблема решается другими средствами?


 
H@CkEi$t   (2007-01-03 21:29) [5]

ладно попробую твой кодинг хотя что-то похожее у меня уже было
спАсИбО kaZaNoVa


 
kaZaNoVa ©   (2007-01-03 21:29) [6]

kaZaNoVa ©   (03.01.07 21:12) [1]
рабочий пример подобного:

Алгоритм программы основан на перехвате оконного обработчика окна SAS window.

если у тя такая задача .....  

http://kladovka.net.ru/index.cgi?pid=list&rid=84


 
H@CkEi$t   (2007-01-03 21:38) [7]

Ok буду разбираться



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

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

Наверх




Память: 0.48 MB
Время: 0.031 c
2-1179309426
allucard
2007-05-16 13:57
2007.06.10
Пример на языке С создание окна, помогите перевести строку


15-1178896830
Kerk
2007-05-11 19:20
2007.06.10
Керк в Москве


15-1179109163
Slider007
2007-05-14 06:19
2007.06.10
С днем рождения ! 12 мая


15-1178787861
Vlad Oshin
2007-05-10 13:04
2007.06.10
Почему то сбилось нахождение кода по щелчку в ObjectInspector


3-1174289525
Mmmaloy
2007-03-19 10:32
2007.06.10
Вычисляемое поле типа Memo