Компьютер и программыWEB-дизайнЛитература и поэзияГуманитарные наукиМастерскаяХронология материаловОбращение к посетителямСкачать шрифтыСкачать рефератыСоздание web сайта на заказСоздание веб сайтов (цены)Веб-сайты, созданные мной (потенциальным заказчикам)Полезные ссылкиОб автореСтатистика сайтаПоказать фреймы
|
Последняя модификация: 15.02.2018 г Страница загружена с адреса: http://comp.site3k.ru/ibmpc/chaptr16.html Глава 16: Представление MS-DOS в цвете и другие возможности Ansi.sys.
Задание цвета.Прежде всего, для представления MS-DOS в цвете требуется посредством соответствующего указания в файле Config.sys, загрузить в оперативную память драйвер Ansi.sys, после чего, с помощью так называемых эскейп-последовательностей, можно менять цвет символов и фона. Главным компонентом эскейп-последовательности является символ ¬ эмитирующий нажатие клавиши ESCAPE. Драйвер Ansi.sys перехватывает все команды, начинающиеся с этого символа, и принимает соответствующие меры. После символа эскейп, задаются параметры, общего вида [S; Sm где m сообщает драйверу о необходимости изменить цвет, а S является режимом отображения и может иметь следующие значения: 0 отменить все ранее заданные режимы и установить режимы по умолчанию (серые буквы на черном фоне). 1 увеличить яркость. 4 подчеркнуть символы. 5 сделать символы мигающими. 8 отключить вывод (невидимые на черном фоне, черные буквы), что можно применять вместо набора команд:
или команды
Однако набор Echo единственный кто предупредит в случае ошибки. Для задания цвета символов и фона применяется две цифры (двухзначное число), первая из которых (десятки) определяет объект, а вторая (единицы) его цвет. Тройка в десятках соответствует символам. Четверка в десятках соответствует фону. Сами цвета, кодируются следующим образом: 0 черный 1 красный 2 зеленый 3 рыжий либо желтый (в зависимости от яркости) 4 синий 5 сиреневый 6 бирюзовый 7 серебристый (белый) Например, число 31 означает буквы красного цвета, а команда ←[1;5;31;40m (или ←[5;31;1;40m порядок кодировки значения не имеет) означает: Выводить изображение в виде мигающих надписей светящихся красным неоновым светом на черном фоне. Установленный режим действует от места задания, до места смены новой эскейп-последовательностью. На ранее выведенное изображение действие не распространяется, что снимает все ограничения на комбинирование цвета. Если же, сочетание цветов нежелательно, после задания режима, применяется команда CLS, очищающая экран от прежних изображений. При задании режима, немаловажным фактом является и то, что сама управляющая последовательность, при активном драйвере Ansi.sys на экран не выводится, а значит и не занимает места, вследствие чего, например, слово Del, в надписи Pres Del to Enter Setup можно выделить более ярким цветом (или вообще, другим цветом), не нарушая логический строй фразы. Строка: ←[37;40mPres ←[1mDel ←[0;37;40mto Enter Setup при выводе на экран, будет выглядеть именно так, как выглядит при загрузке компьютера, без всяких [S; Sm (при чем, параметры 37;40 принимаются MS-DOS по умолчанию и в большинстве случаев их указание не обязательно). Кроме того, последовательность ←[J очищает экран, подобно команде CLS. В задании команды содержащей эскейп-последовательность существует только одна сложность отсутствие клавиши вводящей знак , однако, для ее ввода существует два простых способа:
Ввести в текстовой файл символ можно, воспользовавшись либо встроенным редактором Volkov Commander, позволяющим вводить управляющие кода непосредственно после нажатия клавиши ALT, либо встроеным редактором Norton Commander, позволяюжим применять ALT для ввода управляющих кодов после нажатия CTRL+Q, либо MS-DOS-редактором Edit.com, входящим в состав Windows и позволяющим применять ALT для этой же цели, после нажатия CTRL+P. В любом из них, при нажатом ALT, на калькуляторной клавиатуре набирается цифра 27, которая после отпускания ALT, модифицируется в . Выведение на экран текстовой команды осуществляется либо исполнением файла, если он сохранен как .Bat-файл (при этом, перед командой ←[S , в одной строке с ней, следует ввести команду ECHO, иначе компьютер сделает замечание, что команда указана не верно), либо командами типа:
Где 1 является именем файла (для простоты, его можно так и назвать). Вывод таблиц.Драйвер Ansi.sys позволяет создавать не только разноцветные надписи, но и всевозможные таблицы. Для этого употребимо либо сочетание различных цветов фона, либо символы псевдографики кода ASCII (шрифта Terminal). Применение псевдографики позволяет создавать таблицы и быз драйверы ANSI, хотя и в монохромном режиме. Для введения псевдографики имеются два способа:
Назначение объявлений.Не менее полезна возможность создания с помощью ANSI.sys стационарных обьявлений (панелей), для чего используются следующие эскейп-последовательности, включаемые в переменную PROMPT: $E[S - заносит в память текущую позицию курсора $E[U - возращает курсор в сохраненную в памяти позицию $E[строка;столбецF - перемещает курсор в указанное положение $E[K - очищает строку от текущей позиции, заполняя фоновым цветом (прописная "k"очищает до текущей позицыи). Используя эти команды, удобно выводить на экран короткую справку. Команда: PROMPT $E[S $E[1;1F $E[0;46;30m $E[K $D $T $H$H$H $E[34mЖми $E[37mF12 $E[34mдля запуска Volkov Commander $E[U $E[40;33m $P$G написанная в одну строчку, запоминает позицыю курсора ($E[S), переведит его в левый верхний угол ($E[1;1F), определяет будующий цвет ($E[0;46;30m)1, заполняет этим цветом всю строку ($E[K), сообщает дату и время ($D $T), удаляя секунды и отделяющее их от минут двоеточие ($H$H$H), сменив цвет текста, выводит справку о "горячей" клавише, выделив название клавиши белым цветом ($E[37m), возвращает курсор в запомненную позицыю ($E[U), и со следующей от нее строки, рыжим цветом на черном фоне ($E[40;33m), выводит стандартное системное приглашение ($P$G), перемещающееся по мере заполнения экрана, в то время как, строка объявления жестко закреплена в указаной ей позицыи. Такую команду удобно помещать в Autoexec.bat. Определение "горячих" клавиш.Обрабатываемые драйвером Ansi.sys эскейп-последовательности предоставляют неплохую возможность переназначения клавиш и создания сложных команд, исполняемых по одному нажатию. Учитывая что, все прелести этого драйвера реализуются лишь в DOS, а также, учитывая что, все работающие в DOS, предпочитают общатся с DOS через файловых менеджеров, эта возможность не столь ценна, как возможность управления цветом, но иногда и она может оказатся полезной. Определяется горячая клавиша (как правило, с помощью команды ECHO), последовательностью вида:
где код является кодом опроса назначаемой клавиши или сочетания клавиш, а команда - команда выполняемая по их нажатию (ноль, точки с запятой, кавычки и 13p обязательны). Коды опроса и ASCII-коды для клавиш и сочетаний представлены в таблицах, для удобства ориентации, разделенных на группы. Двойные значения в одной ячейки указывают на изменение символа при нажатии Shift.
Макрокоманды редактора командной строки.Возможность назначения команд, подобную "горячим" клавишам Ansi.sys предоставляет, так же входящий в комплект поставки Windows, редактор командной строки DosKey. И хотя он не может назначать макрос функцыанальным клавишам, а после набора макроса, всегда требуется нажимать Enter, DosKey имеет перед Ansi.sys некоторые преимущества.
Назначается макрокоманда вызовом DosKey с параметром МАКРОС=КОМАНДА где МАКРОС - имя создаваемого или заменяемого макроса, а команда - закрепляемая за ним команда. $T используется в макросах DosKey в качестве резделителя команд $1 - $9 в качестве заменяемых параметров $* глобальный заменяемый параметр, при исполнении заменяющийся всей строкой идущей за именем макроса Таким образом, простейший макрос
заменяет команду pkz на pkzip, вставляет все введенные после нее параметры (выполняет архивацию), при необходимости добавляет расширение (звездочка после $1) и, убедившись что, архив действительно создан (ведь могло быть и так, что указанных к архивации файлов не оказалось в заданном каталоге), делает его резервную копию на дискете. Применен этот макрос, может быть, например, командой
Ее расшифровка даст следующие результаты:
Если процедура, назначаемая в макросе вполне стандартна, то в него можно перенести большее количество аргументов командной строки, и тогда, для ее выполнения, достаточно будет ввести только одно слово. Но, если уж назначать макросы и "горячие" клавиши, то делать это следует в NDOS. Макрокоманды NDOS (называемые синонимами - ALIAS) работают даже внутри файловых менеджеров и по своим возможностям не уступают Bat-файлам. И это при том, что он сам управляет цветом, редактирует командную строку и выполняет еще десятки функцый, иными средствами невыполнимых. Способности NDOS в отношении макрокоманд демонстрирует следующий пример: Если после загрузки через Autoexec.bat команды (в одну строку) alias del `iff isdir %1 then^inkey Это каталог. Удалить (Y/N)? %%YES^iff %YES%==Y then^*del /y /X /S /Z %1^endiff^else Inkey Обработать вложеные каталоги (Y/N)? %%KAT^iff %KAT%==Y then^*del /y /x /s /z %&^else *del /y /z %&^endiff^endiff` ввести команду "DEL имя", NDOS проверит чем является удаляемый обьект и, если это каталог, выдаст запрос на его удаление (и удалит, по нажатию "Y"), а если нет, спросит, обрабатявать ли вложенные кталоги. При положительном ответе, файлы соответствующие указаному имени (именам) или шаблону, будут удалены из текущего и всех вложеных каталогов, не взирая ни на какие атрибуты, а при обнаружении пустых каталогов, будут удалятся и они. Таким образом, командой
можно легко (но только после подтверждения этого решения), уничтожить все програмы на диске С. Обычное удаление, при этом, будет проводится командой *DEL (со звездочкой) либо командой DEL, но с ответом "N" на запрос об обработке вложенных каталогов (на самом деле, достаточно нажать любую клавишу, кроме "Y").
< Глава 15. Глава 16. Глава 17. >
|