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

Вниз

Принимать сообщения и их обрабатывать. как бы интерфейс.   Найти похожие ветки 

 
MadGhost ©   (2004-01-17 17:37) [0]

Здравствуйте уважаемые мастера. У меня к Вам такой вопрос!!!
Как реализовать в обычной программе, прием и обработку сообщений от Windows. Т.е. например есть программа, где то в трее сидит, или в сервисах, не суть, она работает.... и что то делает. Управление этой программы осуществляется с помощью другой программы, которая ищет это окно, через FindWindow(...) и посылает ему сообщение SendMessage(handle,...) вот, а та в свою очередь что нибудь делает, принимая это сообщение.
так вот как реализовать прием этих сообщений в программе?


 
Nick Denry ©   (2004-01-17 20:24) [1]

crazy variant : СДЕЛАЙ МЕНЮ   %-)


 
MadGhost ©   (2004-01-17 22:32) [2]

однако.
я видел такой вариант в winamp т.е. как бы реализован API интерфейс к программе, прибавление убавление громкости, запуск файла и т.д.
хотя в принципе я видел такую возможность, в книжке почитал.


 
sniknik ©   (2004-01-18 02:36) [3]

скомпили и запусти
сначала это
D:\Program Files\Borland\Delphi7\Demos\ActiveX\OleAuto\AutoServ\memoedit.dpr
после это
D:\Program Files\Borland\Delphi7\Demos\ActiveX\OleAuto\AutoServ\autodemo.dpr
(диск D замени на актуальный (свой))

все. как говорится наслаждайся. ;о) (по секрету, тоже самое можно сделать и с громкостью запуском файлов и т.д. можно сделать чтобы проги, управляемай и управляющая, были на разных машинах DCOM называется)


 
Diamond Cat ©   (2004-01-18 03:08) [4]

если программа написанна на API то в функции WinProc описываешь сообщени которые ты хотел бы обрабатывать сам к примеру
function WinProc (hWnd: THandle; nMsg: UINT;
 wParam, lParam: Cardinal): Cardinal; export; stdcall;
begin
 Result := 0;
 case nMsg of
 Wm_timer:   что-то делаем ;
   wm_lButtonDown:  begin
     MessageBox (hWnd, "Окно закрывается",
       "Мое окно", MB_OK);
       PostQuitMessage (0);
при нажатии на окно левой кнопкой мыши вылезет месаджбох
       end;
   wm_Destroy:
     PostQuitMessage (0);
  wm_Close:
     PostQuitMessage (0);
   else
все остальные сообщения которые ты не обработал сам переходят на стандартный обработчик
    Result := DefWindowProc (hWnd, nMsg, wParam, lParam);
 end;
end;
если программа на VCL
то примерно тоже при перехвате оконной процедуры wndproc
объявляем
 protected
   procedure WndProc(var Message: TMessage); override;
..................
procedure TForm1.WndProc(var Message: TMessage);
begin
 inherited WndProc(Message);
 case Message.Msg of
  wm_lbuttondown: делаем что-то
 end { of case };
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.049 c
1-1078656265
Constant
2004-03-07 13:44
2004.03.28
Запись в Excel


7-1072975461
Номолос
2004-01-01 19:44
2004.03.28
Как же всё-таки с любых накопителей читать "напрямую"?


1-1078840598
bn2
2004-03-09 16:56
2004.03.28
непонятное поведение компилятора


1-1078847254
hs
2004-03-09 18:47
2004.03.28
Вопрос про файлы справки


1-1078496814
PiratA
2004-03-05 17:26
2004.03.28
Runtime Eror :(