Xpoint
   [напомнить пароль]

Смена цвета в консоли Windows (cmd.exe)

Метки: [без меток]
2007-11-13 20:26:42 [обр] Алексей Севрюков(0/1292)[досье]
Интересует есть ли возможность с помощью управляющих ESC-последовательностей менять цвет в консоли Windows. Если да, то где можно посмотреть перечень самих кодов.
P.S. Для форума "Настройка персональной Windows" и для раздела "Программирование" тема вроде не подходит, было решено поместить ее здесь.
спустя 12 минут [обр] Алексей Севрюков(0/1292)[досье]
Посмотреть сейчас команду color, это не то, что хочется.
В консоли постоянно ползут некоторые статистические данные, и вот хотелось бы строчки выделять разными цветами.
спустя 15 минут [обр] Thirteensmay(0/157)[досье]
Хм, KIS сказал что во второй ссылке вирус ! ;)
Алексей Севрюков[досье] Если др. варианта не найдете могу предложить простейшую утилитку для установки цветов, т.е. практически то что вы хотели получить от команды color.
спустя 14 минут [обр] Lynn «Кофеман»(0/571)[досье]
Хм, KIS сказал что во второй ссылке вирус ! ;)
Запросто. Но там есть исходники, можно и самому скомпилировать.
А возможно KIS перестраховался, т.к. утилита может цеплятся к уже запущенному процессу. :)
спустя 3 минуты [обр] Thirteensmay(0/157)[досье]
Скорее всего перестраховался, он какраз и говорит что там "внедряльщик"
спустя 5 часов [обр] Алексей Севрюков(0/1292)[досье]

Thirteensmay[досье] мне не удобно будет пользоваться "простейшей утилиткой". У меня есть скомпиленный скрипт на Perl, и вызывать для каждой строчки утилитку - не есть хорошее решение.

Lynn «Кофеман»[досье] да, вторая ссылка похожа на правду, поковыряюсь и скажу получилось или нет.

спустя 7 дней [обр] Alexander O(17/469)[досье]
Алексей Севрюков[досье] use Win32::Console;
спустя 5 дней [обр] Алексей Севрюков(0/1292)[досье]

Вообщем выяснилось следующее:

  1. Если просто выводить коды в поток (print "\e[1;34mThis text is bold blue.\e[0m\n";), то они так и выводятся, цвет не меняется.
  2. Поставил Win32::Console::ANSI. Запускаю тестовый скрипт, на что он мне пишет гадости:

Can't load 'F:/Perl/site/lib/auto/Win32/Console/ANSI/ANSI.dll' for module Win32::Console::ANSI: load_file:Неверная попытка доступа к адресу памяти at F:/Perl/lib/XSLoader.pm line 64.
 at F:/Perl/site/lib/Win32/Console/ANSI.pm line 37
Compilation failed in require at test.pl line 5.

P.S. Если у кого-нибудь есть возможность проверьте эти два варианта, у меня такое подозрение что это из-за Висты все.
P.S.2. То ли я чайник то ли с помошью обычных escape последовательностей это сделать просто невозможно.

спустя 1 час 26 минут [обр] Thirteensmay(0/157)[досье]
use Win32::Console::ANSI;
print "\e[1;34mThis text is bold blue.\e[0m\n";
WinXP - полет нормальный ;)
спустя 2 часа 18 минут [обр] Алексей Севрюков(0/1292)[досье]
Thirteensmay[досье] Значит мое предположение касательно Висты оправдалось. Проверить бы еще на 32х битной версии Висты, а то у меня 64.
спустя 1 год 3 месяца [обр] Алексей Севрюков(0/1292)[досье]
В итоге я доковырял проблему и работаю с perldoc Win32::Console, использую методы Attr и Cls. А в качестве бонуса получаю метод Title, который позволяет в заголовке писать свой текст, очень удобно для свернутых консольных приложений.
Тему можно закрыть.
Powered by POEM™ Engine Copyright © 2002-2005