- Команда COLOR — установить цвет символов и фона консоли Windows
- Команда COLOR: меняем цвет текста и фона в командной строке Windows
- Прозрачная консоль Windows 10
- КОНСОЛЬ WINDOWS
- Изменение цвета в консоли (Си, Си++)
- Пример
- Результаты программы
- 12 отзывов на “ Изменение цвета в консоли (Си, Си++) ”
- Раскрашиваем консоль Windows под хохлому
- ANSI Colors
- Меняем цвета
- Интрига
- Обещанные два клика
Команда COLOR — установить цвет символов и фона консоли Windows
Команда COLOR задает цвет символов и цвет фона в окне консоли .
Формат командной строки:
COLOR [цвет фона][цвет текста]
Цвет задается шестнадцатеричной цифрой, Старший бит определяет яркость, а последующие биты — цвет :
Бит 0 — яркость
Бит 1 — красный ( R )
Бит 2 — зеленый ( G )
Бит 3 — синий ( B )
По умолчанию, используются белые буквы на черном фоне — цвет фона = 0 , цвет символов =7. Значения битов задают комбинацию цветов, так например, для желтого цвета используется установка битов 1 и 2 ( Красный и Зеленый). Команда для установки яркого синего цвета ( 9 ) на желтом фоне ( 6 ) : color 69
То же, но на ярком желтом фоне:
color F0 — черные символы на ярком белом фоне, color 0F — наоборот, белые яркие символы на черном фоне. .
Каждая цифра может иметь следующие значения:
Если в команде COLOR задана только одна цифра, то она определяет цвет символов на черном фоне (значение цвета фона воспринимается как 0 ):
COLOR 1 — синие буквы на черном фоне, как в команде COLOR 01
Если аргумент не указан, команда восстанавливает исходный набор цветов, каким он был на момент запуска CMD.EXE. Этот набор определяется из значения ключа /T, если он был задан при запуске интерпретатора CMD.EXE, или из значения параметров реестра, определяющих пользовательские настройки для интерпретатора команд:
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft \Command Processor\ DefaultColor — для всех пользователей.
HKEY_CURRENT_USER\ Software\ Microsoft\ Command Processor\ DefaultColor — для текущего пользователя. Значения параметров из раздела пользователя более приоритетны, по сравнению с параметрами раздела HKEY_LOCAL_MACHINE
Если параметр DefaultColor имеет значение по умолчанию ( REG_DWORD 0x00000000 ), то цветовой набор определяется значением параметра
HKEY_CURRENT_USER\ Console\ ScreenColors .
Команда COLOR возвращает значение кода ошибки ERRORLEVEL равный 1 при попытке вызова этой команды с совпадающими значениями цвета текста и цвета фона, например — COLOR 00 .
Команда COLOR: меняем цвет текста и фона в командной строке Windows
По умолчанию командная строка Windows располагает чёрным фоном с текстом белого цвета, который располагается на нём. Если такие оформление вам надоело, то, как ни странно, это можно изменить без особых усилий.
Конечно, можно изменить данные настройки через графический интерфейс системы (правой кнопкой мыши по рамке окна командной строки → Свойства → Цвета), но сегодня мы рассмотрим полезную команду COLOR, которая позволяет делать то же самое без дополнительных щелчков мышью.
Изменение цвета текста и фона в командной строке Windows.
Синтаксис команды color очень прост:
Цвета задаются шестнадцатеричными цифрами. Первая цифра отвечает за цвет фона, вторая за цвет текста. Можно использовать следующие цифры:
0 — черный;
1 — синий;
2 — зеленый;
3 — голубой;
4 — красный;
5 — лиловый;
6 — желтый;
7 — белый;
8 — серый;
9 — светло-синий;
A — светло-зеленый;
B — светло-голубой;
C — светло-красный;
D — светло-лиловый;
E — светло-желтый;
F — ярко-белый.
Указав сочетания двух цифр, мы можем задать цвет текста и фона. Например, красный на белом:
Если указать в команде одну цифру, то это будет воспринято как указание цвета текста на чёрном фоне. Например, команда
даст нам светло-зеленый текст на чёрном фоне.
Следует учитывать, что данные настройки будут действовать только пока текущее окно командной строки открыто. Но что делать, если мы хотим сохранить их на постоянной основе? В этом нам помогут два параметра реестра: DefaultColor и ScreenColors.
Для начала посмотрим на DefaultColor. Его можно задать как для отдельного пользователя:
так и для всех пользователей:
Значение параметра из раздела пользователя (HKEY_CURRENT_USER) имеют приоритет над значением параметра для всех.
По умолчанию DefaultColor имеет значение 0x00000000. Это значит, что настройки цвета определяются другим параметром:
Для установки настроек достаточно отредактировать DefaultColor или ScreenColors. Например, мы уже устанавливали красный цвет текста на белом фоне. Вписав подобное значение в реестре, можно установить эту настройку по умолчанию.
Установить одинаковые цвета текста и фона при помощи команды color нельзя. Подобная команда (например, color 55 ) возвратит значение кода ошибки ERRORLEVEL равное 1. Но вот через реестр Windows подобную глупость совершить можно.
Лиловый текст на лиловом фоне в командной строке.
К счастью, и возвратить всё на свои места в случае ошибки не составит труда. Напоминаю, что параметр ScreenColors по умолчанию принимает значение 0x00000007. Это белый текст на чёрном фоне.
Прозрачная консоль Windows 10
Пользователи операционных систем семейства Linux уже давно имеют возможность управлять настройкой прозрачности окна Консоли (Терминала).
Сама по себе эта настройка не добавляет существенной функциональности терминалу, но помогает в тех случаях, когда под открытым окном находится текстовый документ или веб-страница с командой и пользователю необходимо её напечатать в консоли, не прибегая к перелистыванию открытых окон.
То есть, сделав консоль полу-прозрачной, пользователь будет видеть любой текст под ней и у него не возникнет необходимости переключаться между окнами. В Windows 10 терминал был существенно обновлен и теперь включает в себя расширенный набор горячих клавиш.
Его размер может быть свободно изменяемым, поддерживает выделение текста с помощью мыши, как и любой текстовый редактор. Кроме этого, сохранены настройки внешнего вида, такие как цвет, шрифт, расположение и т.д.
Также официально добавлена возможность настройки прозрачности окна. Первоначально всё выглядит так, как на скриншоте ниже.
КОНСОЛЬ WINDOWS
Запустите Терминал нажатием сочетания клавиш Win + R на клавиатуре и вводом команды «cmd.exe». Кликните правой кнопкой мыши по заголовку и нажмите «Свойства».
Внизу, на вкладке «Цвета» передвиньте ползунок прозрачности до желаемого уровня (я рекомендую 80%), благо вносимые изменения видно в режиме реального времени.
Подтвердите внесённые правки нажатием кнопки «ОК». Вот и всё!
Изменение цвета в консоли (Си, Си++)
Продолжаем устранять пробелы в знаниях языка Си. Сегодня я расскажу о том, как изменить цвет фона и выводимого текста в консоли. Для изменения фона и текста используются разные методы, которые сейчас рассмотрим.
Итак, чтобы изменить фон, будем использовать функцию system, в которую будем передавать строку следующего вида: «color «, где и — шестнадцатеричные цифры — первая задает цвет фона, а вторая — цвет переднего плана (цвет шрифта).
- 0 — черный
- 1 — синий
- 2 — зеленый
- 3 — голубой
- 4 — красный
- 5 — лиловый
- 6 — желтый
- 7 — белый
- 8 — серый
- 9 — свело-синий
- A — светло-зеленый
- B — светло-голубой
- С — светло-красный
- E — светло-желтый
- F — ярко-белый
Пример
Думаю с цветом фон проблем не возникло, тогда идем дальше, будем менять цвет слов, символов, а также фон за ними. В этом случае наши действия похожи — нам придется вызывать всего одну функцию, правда перед этим нужно будет подключить заголовочный файл windows.h, а также получить дескриптор консоли. Для лучшего понимания рассмотрим все в следующем листинге.
Как видно из листинга, цвет текста и фона изменяется вызовом функции SetConsoleTextAttribute, которая принимает два параметра: дескриптор консоли и выражение вида (WORD)((Background В отличие от первого случая с функцией system, параметры Bacground и Text являются числовыми, поэтому необходимо цвета, которые имеют буквенное обозначение, заменять их эквивалентами. Например: A = 10, B = 11 и т.д.
Для удобства записи, а также чтобы не запоминать все числа, которые соответствуют цветам, можно создать перечисление, содержащие все цвета. После этого можно будет просто использовать имя цвета вместо соответствующего чисел.
Следует заметить, что если Вам необходимо изменить цвет всего фона, то делать это нужно в первую очередь, так как если вы сделаете иначе, то все, что вы выделили функцией SetConsoleTextAttribute будет иметь другой цвет, заданный в colors.
Листинг рабочей программы
Результаты программы
12 отзывов на “ Изменение цвета в консоли (Си, Си++) ”
Спасибо! Цвета — это хорошая вещь! Я тут такую мини-праверку пароля сделал (совсем примитивную, ибо я начинающий), и цвета там реально смотрятся! 2
можно просто на рабочем столе зайти в: свойства/цвет и там изменить цвет консоли и теста
Как на счет большего количества цветов консоли? Есть такая возможность?
Большое спасибо,всё понятно
Михаил добрый вечер!Скажите а если надо чтобы какой-то один символ выделить другим цветом от всех остальных как в таком случае поступить
и вообще возможно ли это?
Статья полезная! Скажите Михаил, а что нужно подключить, что б это было справедливо и для Ubuntu? Спасибо!
Здесь я подсказать ничего не смогу, так как не писал на си в Linux.
Ура Анарбек екеумизге комеги тиди супер!
Спасибо за статью, полезная вещь
Спасибо за статью, очень помогли
Рад, что помог) Спасибо за отзыв
Когда пытаюсь подключить заголовочный файл Windows.h компелятор пишет not fond
Раскрашиваем консоль Windows под хохлому
С наступающим, коллеги. Все знают, что для консоли в windows можно легко задать цвет текста и фона. Но мало кто знает, что остальные 14 цветов тоже можно задать, существенно упростив себе работу с консольными приложениями, поддерживающими цвета в windows — например, git или mercurial. Под катом я в лицах и картинках расскажу о своей борьбе с цветами и о получившейся в результате утилитке на python, которая позволяет раскрасить консоль одной командой, дабы больше не видеть этого бело-синего ужаса powershell.
ANSI Colors
Итак, я хочу поменять все цвета в консоли, а не только текста и фона. Для начала посмотрим, что это за цвета. В linux и osx все просто — есть стандарт «ANSI Colors», который гласит, что если вывести в консоль определенную последовательность символов, то следующий за ней текст будет покрашен во все цвета радуги:
К сожалению, авторы windows данный стандарт не поддержали, но нечто похожее имеется — 16 цветов, которыми можно раскрашивать текст и фон. Простенькая программа на python показывает, как это выглядит:
Цвета, мягко выражаясь, печальные. Особенно если сравнивать результаты с цветовой схемой по умолчанию в ubuntu:
Меняем цвета
Цветовые настройки консоли хранятся, что ожидаемо, в реестра. Нас интересует ключ HKEY_CURRENT_USER\Console, значения от «ColorTable00 (черный, он же цвет фона) до ColorTable15 (яркий белый). Значения: DWORD, 0x00BBGGRR. Меняем эти волшебные ключи и получаем то же самое, что и в Ubuntu. Единственная разница — цвета идут в другом порядке:
Цель достигнута? Похоже на то. Но тут есть…
Интрига
Радуемся новым цветам. Через некоторое время понимаем, что у нас Windows 7 или Windows 8 и мы хотим прикрепить консоль в taskbar, дабы вызывать ее через хоткей „win+номер“. Делаем „pin this program to taskbar“, запускаем, и видим ЭТО:
Откуда взялся этот синий фон, который при раскраске становится черным? Ведь если запустить консоль через „win+r“ — мы видим наши цвета, установленные на предыдущем шаге. Тут кроется самое интересное — когда мы прикрепляем консольное приложение на taskbar, Windows создает для него ярлык (файл с расширением .lnk) и устанавливает для этого ярлыка персональные настройки цветов. Что делать? Берем в руки python, немного COM, и модифицируем настройки ярлыка. Теперь совсем все работает.
Обещанные два клика
Чтобы не растерять квалификацию программиста, я оформил все вышеперечисленное в качестве небольшого модуля на python, который можно использовать в качестве утилиты командной строки. Если у вас уже установлен python, то для установки моего шедевра достаточно выполнить команду:
Если же python у вас не стоит, то рекомендую поставить сборку ActivePython — кроме python она содержит еще и ряд предустановленных расширений, полезных для работы под Windows. Как с помощью утилиты раскрасить консоль под хохлому? Если запустить утилиту без аргументов командной строки, то она попытается найти в директории пользователя файл .Xresources и применить цвета из него. Если же такого файла нет, то будут применены цвета из ubuntu, которые я демонстрировал в примерах выше. Файл .Xresources — это штатный для *nix способ хранения настроек терминала, в частности цветовых схем. Если погуглить, то можно найти красивые готовые схемы.
Работа с ярлыками чуть сложнее — чтобы модифицировать настройки ярлыка, необходимо вызвать утилиту с ключом командной строки ‘—update-link’ и полным путем к ярлыку. Ярлыки прикрепленных на taskbar программ в Windows хранятся в директории „%USERPROFILE%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar“. Пример модификации ярлыка powershell, прикрепленного к taskbar:
Вроде все. Еще раз с наступающим всех, надеюсь кому-нибудь вышеизложенное пригодится :).