Дополнения для Excel и Word

Число и денежная сумма прописью в Excel и Word

Доработки и исправления в Windows

Стандартный курсор и цветовая палитра для DOS-окна Windows 2000/XP
Автоматический запуск программ с ограниченной датой работы
Индикатор переключения клавиатуры для Windows XP

Поддержка русского языка в Windows

Альтернативная раскладка русской клавиатуры
Драйвер кириллицы для DOS и DOS-режима Windows 9x/2000/XP
Проблема с русскими надписями под Windows 2000/XP

Программы на другие темы можно посмотреть здесь:
Программы для Windows Mobile
Рентгеноструктурный процессор RTP
Архив программ для Windows
Архив DOS-программ
Исправления к играм Нивала


Дополнения для Excel и Word

Число и денежная сумма прописью в Excel и Word

Программа NUMSTR, послужившая прототипом для данного конвертора, была написана на Visual Basic'е для Excel 97 Сергеем Банниковым. Она была выпущена как Public domain, и её можно найти среди разработок Office Extension.

АргументФункция / результат
число= NumStr (number)
19721901Девятнадцать миллионов семьсот двадцать одна тысяча девятьсот один
рубли= RubStr (rubles)
102003,595Сто две тысячи три рубля 60 копеек
доллары= USDStr (dollars)
54016Пятьдесят четыре тысячи шестнадцать долларов США
евро= EURStr (euro)
311500Триста одиннадцать тысяч пятьсот евро

С практической точки зрения конвертор числа в текстовую строку, т.е. функция «число прописью», нужен в основном в экономических или бухгалтерских приложениях, особенно при заполнении платёжных документов. Набор функций для Excel написан на VBA и включает основную функцию NumStr(), а также функции RubStr(), USDStr() и EURStr(), которые могут использоваться для вывода в текущей ячейке суммы в рублях и копейках, в долларах США или в евро, соответственно. Аргументом для всех функций может служить ссылка на ячейку, непосредственное значение или формула. Допустимый интервал чисел соответствует формату Currency (до 922 триллионов).

Модуль NUMSTR.XLA представляет собой отдельную надстройку (Add-in), которая подключается к Excel. Файл нужно поместить в каталог AddIns, расположение которого зависит от версии операционной системы и версии Office, например:

%Userprofile%\Application Data\Microsoft\AddIns\
%ProgramFiles%\Microsoft Office\Office\Library\

Затем нужно запустить Excel, открыть пустую книгу и с помощью меню Tools, Add-Ins... (Сервис, Надстройки) вывести диалог Add-Ins (Надстройки), где отметить галочкой пункт NumStr Add-in.

Диалог «Число прописью» в Word

Аналогичный конвертор работает в среде MS Word, он также написан на VBA. Здесь оказалось удобнее вместо функций выводить диалоговое окно. В нём можно ввести нужное число — напрямую или из буфера обмена, а затем нажать одну из кнопок формата для вставки строки в документ. Диалог вызывается через список макрокоманд (его имя ConvertToString) или с помощью кнопки на панели инструментов. Параметр «Начать с заглавной» определяет, нужно ли использовать заглавную букву в первом слове строки, по умолчанию он включен. Для рублёвой валюты можно ввести дробную часть, которая будет округлена до целых копеек. Десятичным разделителем служит знак, указанный в Control Panel, для русских региональных установок это запятая (если вместо запятой ввести точку, строка не будет восприниматься как число и вставится в документ в исходном виде). Для других валют и для обычной текстовой строки вывод дробной части не предусмотрен.

Шаблон NUMSTR.DOT можно поместить в общий каталог Templates с шаблонами Word, чтобы создавать документы на его основе (программа будет включаться в каждый новый документ). Другой вариант — поместить шаблон в каталог Startup, тогда программа будет загружаться каждый раз при запуске редактора, но в документы включаться не будет.

названиедлиначто содержит
numstr.cab35 045 XLA-файл с набором функций, DOT-файл с программой (версия от 18.10.2004)

Примечание: функцию «число прописью» можно написать на разных языках, в экономических программах она часто бывает встроена разработчиками для удобства пользователей. Алгоритм её работы не очень сложен и может быть реализован на языке javascript. Набор функций «число и время прописью», используемый на этой странице, размещён в numstr.txt (формат utf-8), а интерфейс — непосредственно в html-коде. Вначале выводится день недели и дата, а затем с помощью функций «время прописью» составляется строка времени (попробуйте обновить страницу):

Доработки и исправления в Windows

Стандартный курсор и цветовая палитра для DOS-окна Windows 2000/XP

При переходе от Windows 98 к Windows XP можно обратить внимание, что стандартный курсор стал немного крупнее. Это особенно заметно, если использовать схему курсоров Animated hourglasses (песочные часы) — курсор в виде стрелки с небольшими часами, который показывает работу приложения в фоновом режиме, остался прежним. Если вы привыкли к курсорам малого размера, можно исправить этот недостаток, загрузив курсор arrow_s.cur (small arrow) или полный комплект из трёх курсоров. Запишите курсор в каталог %SystemRoot%\CURSORS\ и подключите через панель управления мышью.

Другой недостаток настроек по умолчанию в Windows 2000/XP связан с палитрой для окна консоли и DOS-окна: обычные цвета по сравнению с яркими выглядят чрезмерно тусклыми. Вручную это можно исправить в свойствах окна на закладке Colors, но проще решить проблему для всех окон сразу, изменив параметры по умолчанию для системной консоли. Загрузите файл console.reg и внесите его содержимое в Registry двойным щелчком мыши. Кроме изменения палитры, в этом файле устанавливается меньший размер курсора в окне консоли и на полном экране (традиционные 2 строки вместо трёх). Настройки задаются для текущего пользователя, поэтому при первом входе нового пользователя операцию нужно будет повторить.

arrow_s.cab199 курсор-стрелка, парный к «фоновому режиму» в стиле «песочных часов»
cursors.cab1 511 набор курсоров в стиле «песочные часы»: стрелка, фоновый режим, ожидание
console.cab252 reg-файл для замены палитры в консоли на стандартную

Автоматический запуск программ с ограниченной датой работы

Существует ряд программ, эффективно работающих только до определённого срока или даты. К ним обычно относятся бета- и демо-версии или программы, срок действия которых ограничен временем подписки. Затем программа может утратить часть функций, перейти в демонстрационный режим или вообще перестаёт работать. Предполагается, что к этому времени пользователь приобретёт более новую версию. В принципе такую программу можно запустить, изменив «назад» текущую системную дату, а затем восстановить дату обратно. Эти операции можно делать вручную, но проще выполнить их средствами ОС. Не лишне будет напомнить, что длительное использование «просроченных» программ может вызвать проблемы, в них могут отсутствовать последние исправления и доработки, а в антивирусах — последние дополнения к базе. В бета- и демо-версиях часть функций может быть урезана с самого начала.

Для запуска программы с ограниченной датой служит скрипт, написанный на языке JScript. Выделите текст, приведённый ниже, и вставьте в каком-нибудь редакторе: скрипт потребует небольшой правки. Принцип его работы несложен: после чтения параметров командной строки и проверки полуночи (чтобы исключить сбой даты) текущая системная дата запоминается в переменной today. Затем с помощью командного интерпретатора cmd.exe дата меняется на oldday, при которой программа ещё способна работать. Cmd.exe отрабатывает команду в «скрытом» режиме и не взаимодействует с пользователем. После этого запускается заданная программа. Скрипт делает паузу, чтобы программа успела проверить дату — например, на 5 секунд. Наконец, повторный вызов cmd.exe восстанавливает текущую дату. Скрипт рассчитан на Windows 2000/XP, для запуска в Windows 9x замените в двух местах cmd.exe на command.com.

В текст скрипта необходимо внести следующие изменения:

  1. Вместо program.exe вписать реальное имя программы, при необходимости добавить путь.
  2. Проверить формат даты в ОС, при необходимости заменить разделитель и порядок следования переменных.
  3. В строке старой даты вписать дату (с учётом формата), при которой программа способна нормально работать.

Скрипт целесообразно разместить в каталоге с exe-файлом запускаемой программы. Затем нужно проверить время задержки перед восстановлением даты: если время загрузки программы слишком велико и проверка не успевает пройти, задержку следует увеличить. Обратите внимание, что в случае сбоя скрипта при запуске программы (не найден exe-файл и т.д.) текущая дата не восстановится и её придётся исправить вручную.

Приложение: скрипт program.js

// Set temporary date to run an expired application
// **************************************************

// Application-related data
// if spaces, use apostrophes: '"the test.exe"'
var app    = "program.exe"; // application
var oldday = "31.7.2004";   // unrestricted date
var delay  = 5;             // pause to check date, s

var WSHShell = WScript.CreateObject("WScript.Shell");
var args = WScript.Arguments;
var i, day, month, year, today;
var d = new Date();

// **************************************************
// Copy command-line arguments
for (i = 0; i < args.length; i++)
	app += ' "' + args(i) + '"';

// Pass midnight
if (d.getHours() == 23 && d.getMinutes() == 59
		&& (d.getSeconds() + delay >= 59))
	while (d.getHours() > 0)
		{ d = new Date(); WScript.Sleep(50); }	
 
// Get current date
day   = d.getDate();
month = d.getMonth() + 1;
year  = d.getYear();
// use your date format and divider instead of 'd.m.y'
// e.g. today = year + "/" + month + "/" + day;
today = day + "." + month + "." + year;

// Set old date, run application
WSHShell.Run ("cmd.exe /c date " + oldday, 0);
WSHShell.Run (app);

// Wait until date check is passed, restore date
WScript.Sleep (delay * 1000);
WSHShell.Run ("cmd.exe /c date " + today, 0);

Другой вариант — скрипт, который позволяет записывать в Registry текущую дату (или любую другую переменную), считываемую программой при запуске. Его достаточно запускать раз в день из системного планировщика заданий.

// Set new installation date for the application
// **************************************************

// Application-specific Registry key
var key = "HKLM\\SOFTWARE\\Example\\Setup\\InstallDate";

var WSHShell = WScript.CreateObject("WScript.Shell");
var day, month, year, today;
var d = new Date();

// **************************************************
// Get current date
day   = d.getDate();
month = d.getMonth() + 1;
year  = d.getYear();
// use program's date format and divider instead of 'd/m/y'
today = day + "/" + month + "/" + year;

// Set new date in Registry
WSHShell.RegWrite (key, today, "REG_SZ");

Индикатор переключения клавиатуры для Windows XP

Индикатор клавиатуры

Внимание! Данная программа не работает в Windows Vista. В Windows XP x64 индикатор работает, но только в пределах 32-битной подсистемы (WoW64).

При переходе от Windows 9x к XP многие пользователи замечают различие в работе индикатора текущей раскладки клавиатуры, который обычно выводится в правой части панели задач. По сравнению с Windows 9x этот индикатор имеет определённые недостатки, которые для некоторых пользователей, в зависимости от их привычки, могут оказаться существенными. Во-первых, индикатор в Windows XP весьма инерционен, т.е. задержка его смены после нажатия соответствующей комбинации клавиш может достигать порядка секунды, хотя реально раскладка переключается практически мгновенно. Это может замедлять быстрый набор и дезориентировать пользователя. Во-вторых, индикатор на панели задач занимает собственную панель (Language bar), которая имеет достаточно большую ширину и отнимает лишнее место у других иконок и запущенных приложений. Кроме того, ширина символьного поля индикатора слишком мала и части символов обрезаются по краям, что ухудшает их читаемость. В Windows 9x индикатор располагается рядом с часами и занимает ровно одну иконку, а обозначение раскладки (языка) полностью вписывается в поле.

Оказывается, что стандартный индикатор раскладки из Windows 9x вполне может работать под XP, и при его использовании отмеченные недостатки отсутствуют. Индикатор в Windows 9x включает 2 файла — INTERNAT.EXE и INDICDLL.DLL, которые нужно поместить в каталог %systemroot%\system32. После этого достаточно отключить встроенный индикатор (Turn off advanced text service на закладке Advanced в окне выбора языков ввода и раскладок) и запустить программу INTERNAT.EXE (её можно записать в автозапуск или добавить в ветку Run в Registry). Однако при такой замене индикатора полное название раскладки не будет выводиться ни в меню, открывающемся при щелчке по индикатору, ни во всплывающих подсказках: вместо названий будут выводиться цифры, обычно 1 или 5. Причина в том, что таблица названий в Registry Windows 9x, откуда индикатор берёт нужную информацию, в Windows XP отсутствует. Точнее, есть аналогичная таблица — RFC1766, но она находится в другом месте и устроена немного иначе.

Устранить различие позволяет модифицированная версия программы INTERNAT.EXE, в которой исправлен этот ключ Registry (исходные файлы взяты из Windows 98 SE). Таблица RFC1766, к которой обращается программа, также прилагается в виде reg-файла с английскими названиями. Для установки индикатора перепишите exe- и dll-файлы в каталог system32, отключите стандартную языковую панель и задайте автозагрузку индикатора, для чего добавьте к Registry содержимое файла run.reg. Затем перегрузите систему. При некорректных показаниях индикатора, или если вы хотите сменить названия на английские, добавьте к Registry содержимое файла RFC1766.reg. Если потребуется отключить этот индикатор и вернуть стандартный индикатор Windows XP, выгрузите из памяти процесс internat.exe, переименуйте расширение файла, например, в ex_, и подключите Language bar через элемент панели управления «Regional and Language options» (Региональные и языковые настройки).

internat.cab9 731 EXE- и DLL-файлы индикатора, два reg-файла

Примечание. Программа Ctfmon.exe (процессор, управляющий альтернативным вводом текста), которая входит в состав Windows XP, при своей загрузке может принудительно выгружать данный индикатор. Избежать коллизии можно двумя способами. Во-первых, если альтернативный ввод вам не нужен (а в большинстве случаев это так), можно отключить сервис CTFMON. Вначале следует отключить расширенные текстовые службы, т.е. advanced text services, поставив галочку на нижнем переключателе на второй закладке в окне выбора клавиатурных языков в Сontrol Panel, затем проверить, исключен ли Ctfmon.exe из секции Run в Registry (обычно в ветви HKCU), возможно, придётся перезапустить систему. Во-вторых, если поддержка альтернативного ввода нужна, можно загружать INTERNAT.EXE с некоторой задержкой (1-2 с), чтобы CTFMON к тому моменту успевал запуститься — например, из программной группы Startup, используя скрипт internat.js:

var WSHShell = WScript.CreateObject("WScript.Shell");
WScript.Sleep (2000);
WSHShell.Run ("internat.exe");

Важно: чтобы вернуть обратно стандартный индикатор Windows 2000/XP, нужно восстановить работу сервиса Ctfmon.exe. Для этого, во-первых, в панели управления нужно выбрать региональные настройки и на странице выбора клавиатурных раскладок включить языковую панель (доступ к ней по кнопке Language bar), а если эта кнопка неактивна, нужно отменить отключение расширенных текстовых служб (advanced text services), сняв нижнюю галочку на второй закладке. Затем нужно перезапустить систему, и если Ctfmon.exe не начала работать, нужно прописать ссылку на неё в одну из ветвей автозапуска (Run) в Registry (HKLM для всех пользователей или HKCU только для вас). Наконец, в контекстном меню панели задач (Toolbars) нужно разрешить вывод языковой панели.

Поддержка русского языка в Windows

Альтернативная раскладка русской клавиатуры

Альтернативная раскладка русской клавиатуры (по сравнению с обычной, входящей в комплект Windows), может быть полезна тем, кто предпочитает использовать расположение клавиш, близкое к русской пишущей машине. Особенно — тем пользователям, кто в своё время обучался машинописи и имеет определённый механический навык к этому расположению. На рисунке показана схема клавиатуры (в верхнем регистре).

Раскладка клавиатуры

Клавиатуры с таким расположением клавиш (близким к раскладке IBM 443 для России) были широко распространены в 90-х годах, но встречаются и сейчас. По сравнению с раскладкой 443 в данном варианте добавлены типографские символы кавычек: «галочек» и „лапок“, знаки «№», «—», «±», а также «€» — символ валюты ЕС (AltGr+5).

Пояснения к раскладке: «открывающие» скобка и кавычка-галочка набираются при нажатом Shift, «закрывающие» — без Shift. Вместо знака подчёркивания (дефис с Shift) вводится типографское тире, часто встречающееся в русских текстах; подчёркивание вводится при нажатом AltGr. Аналогично, с клавишей AltGr вводятся символы @ # $ & * \ [ ] < > на тех же местах, как в английской раскладке. Знак «|» вводится как AltGr+| или AltGr+Shift+\. Клавиша AltGr — это правая клавиша Alt, при отсутствии её можно заменить комбинацией Ctrl+Alt.

kbdru.cab593 клавиатурная раскладка для Windows 9x
kbdruc.7z137 169 клавиатурная раскладка для Windows 2000/XP/Vista
kbd_src.7z2 208 исходный текст раскладки Russian (Classic) для MSKLC

Для работы в Windows 9x файл KBDRU.KBD из первого архива нужно переписать в каталог <windows>\system, заменив существующий там c тем же именем. Для правки раскладки удобно использовать редактор CyrWin95 (достаточно демо-версии). У редактора JKBD98 примерно те же возможности, но он может считывать только «свои» раскладки.

В Windows 2000/XP/Vista следует использовать инсталлятор, приложенный во втором архиве. Распакуйте архив во временный каталог (о формате 7-Zip см. в разделе поддержка игр) и запустите setup.exe. Имя раскладки — Russian (Classic). После установки проверьте, подключена ли новая раскладка к списку доступных в панели региональных настроек и языков ввода, при необходимости добавьте её вручную. Тогда исходную русскую раскладку Russian можно удалить из списка.

Раскладки и инсталлятор сделаны с помощью программы Microsoft Keyboard Layout Creator версии 1.4 (в эту версию была добавлена поддержка Windows Vista и Windows XP x64). Если вы хотите сделать собственную раскладку, можете воспользоваться исходным текстом, который прилагается в третьем архиве.

Драйвер кириллицы для DOS и DOS-режима Windows 9x/2000/XP

Поддержка русского языка для клавиатуры и экрана в DOS-режиме — проблема, знакомая почти всем пользователям. Разнообразные драйверы, выполняющие эту функцию, существуют начиная с середины 80-х годов. В последнее время поддержка русского языка была включена в различные версии DOS и Windows, и многие считают проблему решённой. Тем не менее, качество «фирменной» поддержки кириллицы, особенно проблемы сброса экранного шрифта, а также графическое качество шрифтов оставляют желать лучшего.

Драйвер CLARUS, прототипы которого разрабатывались как альтернатива другим драйверам с учётом их недостатков, имеет 10-летнюю историю и неоднократно улучшался. Пользователи многих десятков машин, где был установлен драйвер, достаточно быстро забывали о его существовании (считая кириллицу само собой разумеющейся). Резидентная часть драйвера обладает высокой способностью к «удержанию» кириллицы в видеоадаптере. Кириллические шрифты также были разработаны автором. В версии 1.9 (декабрь 2005 г.) включена возможность выбора раскладки клавиатуры, используемой по умолчанию в русской версии Windows, добавлен файл для исправления палитры консоли Windows 2000/XP (подробности об установке драйвера в разных ОС смотрите в описании).

clarus.cab39 468 драйвер версии 1.9, описание, шрифты, reg-файл

Архив clarus.cab содержит собственно программу, дополнительный набор шрифтов с таблицами 866 и 437, а также описания в DOS-формате (CP 866) и в HTML-формате (1251). Прилагается reg-файл для замены палитры консоли.

Проблема с русскими надписями под Windows 2000/XP

При запуске в Windows 2000 или XP некоторых программ, которые были рассчитаны на работу в Windows 9x с кодовой таблицей 1251 по умолчанию (например, к ним относятся игры «Машина Времени» и «Одиссея» от Cryo, локализованные компанией Nival Interactive) может встречаться проблема с выводом русских надписей: в тексте меню и в титрах внутри игры вместо русских букв выводятся европейские с диакритическими знаками. Проблему решает patch, исправляющий кодовую страницу по умолчанию для шрифтов Arial, Courier New и Times New Roman, а также шрифтов-подстановок Courier и Times. Загрузите файл font_ru.reg во временный каталог (в контекстном меню, выводимом по правой кнопке мыши, выберите команду «Save target as» или «Сохранить как»). Затем запустите Windows Explorer (Проводник) и двойным щелчком мыши по загруженному файлу добавьте его содержимое в Windows Registry. Перегрузите компьютер, чтобы сделанные изменения вступили в силу.

font_ru.cab236 reg-файл для Windows 2000/XP

Примечание: для выполнения этой операции нужно иметь административные привилегии в Windows.

Дополнительно про игры: кроме указанных исправлений в операционной системе, для запуска игр «Машина Времени» и «Одиссея» на современных процессорах может потребоваться установка исправлений для самой игры. Более подробно об этом смотрите на странице техподдержки локализаций Нивала.