Как содержимое окна консоли вывести через функцию - MessageBox

Тема в разделе "WASM.BEGINNERS", создана пользователем assch, 21 апр 2017.

  1. assch

    assch Member

    Публикаций:
    0
    Регистрация:
    17 мар 2011
    Сообщения:
    208
    Как содержимое окна консоли вывести через функцию - MessageBox

    По сути должен быть буфер консоли
    но вот как выйти на него программно не пойму

    Кто знает этот алгоритм подскажите пожалуйста
     
  2. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.351
    В консольном буфере не чистый текст, а массив структур CHAR_INFO (символ и атрибут). Так что читай этот массив структур функцией ReadConsoleOutput() и конвертируй сам в LPTSTR.
     
    assch нравится это.
  3. assch

    assch Member

    Публикаций:
    0
    Регистрация:
    17 мар 2011
    Сообщения:
    208
    Большое спасибо rmn, попробую

    Не подскажите а как узнать какой массив структур на данный момент прописан в консоле
     
  4. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.351
    ReadConsoleOutput() же.

    --
    О, да там даже ReadConsoleOutputCharacter() есть. Вообще ничего конвертировать уже не нужно, просто читай в буфер подходящего размера и передавай его в MessageBox(). :)
     
    Последнее редактирование: 21 апр 2017
    assch нравится это.
  5. assch

    assch Member

    Публикаций:
    0
    Регистрация:
    17 мар 2011
    Сообщения:
    208
    Спасибо rmn

    Выше постом я наверное не правильно сформулировал вопрос
    Я имел в виду как узнать сколько символов уже прописано в консоле
    чтобы подставить это значение в третий параметр функции - ReadConsoleOutputCharacter()
     
  6. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.351
    assch,
    Выше же ссылка на все, что связано с консолью. GetConsoleScreenBufferInfo() вернет информацию по метрикам консоли. По дефолту будет 25 строк по 80 символов, как в досе.

    А, там не так все устроено. Буфер консоли всегда заполнен полностью. Где нет символов - там пробелы. Работа с консолью это не как с текстовым редактором, а скорее как прямая запись в видеопамять в дос была.
     
    Последнее редактирование: 21 апр 2017
  7. assch

    assch Member

    Публикаций:
    0
    Регистрация:
    17 мар 2011
    Сообщения:
    208
    Спасибо за участие rmn,
    Попробую разобратся