Конференция "WinAPI" » Кто обрабатывает нажатие на кнопку в MessageBox ? [D7, WinXP]
 
  • Начинающий (21.02.08 11:14) [0]
    Такой простой вопрос.
    Где происходит обработка нажатия на кнопку "Ok" при вызове MessageBox(...) в приложениях, не имеющих цикла обработки сообщений ?
    И можно ли из другой программы нажать на эту кнопку ?

    Пример кода:

    {$APPTYPE CONSOLE}
    program Project1;

    uses Windows, SysUtils;

    {$R *.RES}

    var
     i: integer;
    begin
     for i := 0 to 9 do begin
    // ...
       MessageBox(0, 'sometext', '', MB_OK or MB_ICONINFORMATION);
     end;
    end.

  • Игорь Шевченко © (21.02.08 11:50) [1]

    > Кто обрабатывает нажатие на кнопку в MessageBox


    Сидит в винде маленький демон, когда вызывается MessageBox, его пинают в спину, он начинает следить за окном этого MessageBox, когда нажимают на кнопку, он закрывает окно.
  • DVM © (21.02.08 17:26) [2]

    > Где происходит обработка нажатия на кнопку "Ok" при вызове
    > MessageBox(...) в приложениях, не имеющих цикла обработки
    > сообщений ?

    В недрах одной из DLL Windows. И цикл сообщений и оконная процедура там.
  • Начинающий (22.02.08 16:49) [3]
    Большое человеческое спасибо :)
    Про демона понравилось :)))

    Значит перехватить никак :(
  • DVM © (23.02.08 18:34) [4]

    > Значит перехватить никак :(

    Почему же? Очень даже как. Подмени оконную процедуру окна и всего делов. Это несложно.
  • leshyi (09.05.08 00:02) [5]
    а проще напиши свою ф-ю MyMessageBox..
  • Германн © (09.05.08 00:15) [6]
    Вот как раз и наглядный пример "некроманта", о которых говорил сегодня sniknik :)
 
Конференция "WinAPI" » Кто обрабатывает нажатие на кнопку в MessageBox ? [D7, WinXP]
Есть новые Нет новых   [134432   +19][b:0][p:0.001]