Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2009, 22:26   #1
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
Стрелка Обработка сообщений в консольных приложениях

Помогите пожалуйста: мне надо обрабатывать сообщение windows в консольном приложении... Как это реализовать? Я посмотрел пример такой:
Код:
program Project1;
{$APPTYPE CONSOLE}

uses Windows, Messages;

var
  ID, ThrHandle, InpHandle, ScrHandle: Cardinal;
  IR: INPUT_RECORD;
  Msg: TMsg;

procedure Execute;         // цикл обработки сообщений
begin
  repeat 
    GetMessage(Msg,0,0,0); // берем сообщение в переменную Msg
    case Msg.message of    // анализируем тип сообщения
      ...
    end;
  until False;
end;

begin
  InpHandle:=GetStdHandle(STD_INPUT_HANDLE);
  ScrHandle:=GetStdHandle(STD_OUTPUT_HANDLE);
  SetConsoleTitle('Super Program');
  ThrHandle:=CreateThread(nil,0,@Execute,nil,0,ID); // создаем новый поток
        { цикл обработки ввода: }
  repeat
    WaitForSingleObjectEx(InpHandle,INFINITE,false); // ждем события ввода
    ReadConsoleInput(InpHandle,IR,1,Wr);     // берем запись в переменную IR
    case IR.EventType of                     // анализируем тип события ввода
      ...
    end; 
  until False;
end.
И мне хотелось бы просто разъяснить как это работает, но чтобы это понять самому мне пока не достаточно знаний консольных приложений(((
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Старый 06.06.2009, 22:48   #2
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Создаётся второй поток. В первом потоке цикл сообщений для консоли, в новом потоке — цикл сообщений Windows.
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Старый 06.06.2009, 22:50   #3
Mixasik
New Delphi Coder
Форумчанин Подтвердите свой е-майл
 
Аватар для Mixasik
 
Регистрация: 20.07.2008
Сообщений: 874
По умолчанию

Это я понял, но вот какэто все работает не понятно, например получено сообщение windows как мне произвести с ним какие лиюо действия или просто написать в консоли что сообщение поймано и его название?
Страх это слабость и потому, кто испугался уже побежден.
Mixasik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по адресной арифметике и Message в консольных приложениях Enikov Помощь студентам 5 01.01.2009 19:44
Перехват и обработка сообщений Mail.ru агента NikLik Работа с сетью в Delphi 4 22.07.2008 15:39
Перехват сообщений от Службы сообщений (Messenger) SJMS Win Api 6 17.07.2008 10:26
Обработка сообщений иконки трея The_Darkness Win Api 18 15.07.2008 16:07