Перейти к содержимому



- - - - -

Проблемы с файлом autoexec


Сообщений в теме: 8

#1 OFFLINE   Samanta



  • 6 сообщений

Отправлено 16 Октябрь 2008 - 05:08

Стоит XP Service pack 2
Есть программа под DOS с кадастром населения. При поиске по ФИО клавой не воспринимается переключение рус/англ ни в какую...
При Win'98 все нормально...

В файле autoexec прописано под настройки программы:

PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;c:\dbu;c:\me;c:\util;c:\reestr.22
verify on

set tmp=c:\windows\temp
set temp=c:\windows\temp
mode con codepage prepare=((866) C:\WINDOWS\COMMAND\ega3.cpi)
mode con codepage select=866
keyb ru,,C:\WINDOWS\COMMAND\keybrd3.sys

verify on
set clipper=f195


В файле config

DEVICE=C:\WINDOWS\HIMEM.SYS
DEVICE=C:\WINDOWS\EMM386.EXE
dos=high, umb
files=200
buffers=50

device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)
Country=007,866,C:\WINDOWS\COMMAND\country.sys

#2 OFFLINE   Downloader



  • 150 сообщений

Отправлено 16 Октябрь 2008 - 07:11

autoexec какой? Нужен тот, что .nt

#3 OFFLINE   Samanta



  • 6 сообщений

Отправлено 16 Октябрь 2008 - 10:00

Просмотр сообщенияDownloader (16.10.2008, 10:11) писал:

autoexec какой? Нужен тот, что .nt

.bat

Потому как запускаю программу с таким же расширением... с pif'ом вообще не грузится...
А в .nt прописано

REM AUTOEXEC.BAT is not used to initialize the MS-DOS environment.
REM AUTOEXEC.NT is used to initialize the MS-DOS environment unless a
REM different startup file is specified in an application's PIF.

Что это значит?

#4 OFFLINE   Maikll



  • 20
  • 4 332 сообщений

Отправлено 16 Октябрь 2008 - 11:30

Samanta: вам нужно прописать все то, что вы написали в autoexec.bat в файл autoexec.nt (находится в C:\WINDOWS\system32).
В ХР autoexec.bat больше не используется, вместо него теперь
AutoExec.nt = AutoExec.bat
Config.nt = Confog.sys
так что вписывать надо тоже самое и туда же. Кстати, все строчки, начинающиеся с REM - комментарии и их можно удалить.
После этого все должно работать правильно.
Поскольку Ничто не есть Нечто, все, что не Нечто есть Ничто; а тот факт, что Нечто не есть Ничто, является чрезвычайно веским доводом в пользу Ничто, особенно для людей, искушенных в житейских делах.

Г. Фильдинг

Изображение


#5 OFFLINE   Pili



  • 1
  • 433 сообщений

Отправлено 16 Октябрь 2008 - 17:34

Программа на фоксе (foxpro)? Если предыдущий совет не поможет, создайте bat файл, в нем пропишите запуск keyrus.com (или найдите rk.com в инете) и затем запуск вашей программы, создайте ярлык для запуска и всё, bat запускаете из в той же папки, где сама программа и туда же положите keyrus.com или в bat файле первой строкой пропишите cd путь_к_папке, напр.

Цитата

cd c:\reestr.22
keyrus.com
reestr.exe
Переключение прав. клавишей ctrl
Прикрепленный файл  KEYRUS.zip   11,26К   100 Количество загрузок:

Сообщение отредактировал Pili: 16 Октябрь 2008 - 17:34


#6 OFFLINE   Samanta



  • 6 сообщений

Отправлено 20 Октябрь 2008 - 07:03

Просмотр сообщенияPili (16.10.2008, 20:34) писал:

Программа на фоксе (foxpro)? Если предыдущий совет не поможет, создайте bat файл, в нем пропишите запуск keyrus.com (или найдите rk.com в инете) и затем запуск вашей программы, создайте ярлык для запуска и всё, bat запускаете из в той же папки, где сама программа и туда же положите keyrus.com или в bat файле первой строкой пропишите cd путь_к_папке, напр.


Спасибо, сработало! Программа на фоксе, правда из под ХР запускалась без проблем, но видимо это операционка так поставлена была... тем менее пусть и с подвывертами, но работает :)
Гран мерси! :)

#7 OFFLINE   Samanta



  • 6 сообщений

Отправлено 20 Октябрь 2008 - 07:29

А можно как-нибудь прописать про этот keyrus в самом реестре regedit?
А то мне жутко от проделанных манипуляций :)

#8 OFFLINE   Maikll



  • 20
  • 4 332 сообщений

Отправлено 20 Октябрь 2008 - 08:08

а смысл? те же костыли, только вид сбоку...
ну раз так хочется править реестр, то вот другой способ (без внешних программ типа keyrus)

Цитата

Вопрос: В DOS-приложениях не переключается раскладка клавиатуры на русскую, хотя русские буквы отображаются нормально.
Ответ: Для решения необходимо в реестре по адресу:
HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control -> KeyboardLayout
изменить значение ключа 00000409 в папке DosKeybCodes на "ru".

Кроме этого, в файле "autoexec.nt", расположенном в Windows\system32, надо добавить строку "lh %SystemRoot%\system32\kb16.com ru" (без кавычек). После перезагрузки переключение раскладки клавиатуры в DOS-приложениях будет производиться комбинациями Ctrl+Left Shift (английская) и Ctrl+Right Shift (русская). Данный метод нормально работает в том случае, если Language settings for the system (апплет Regional Options) в качестве Default стоит Cyrilic.
Выполнение данного способа можно автоматизировать с помощью вот такого скрипта:
'Скрипт для ввода русских букв в DOS-сессиях NT-систем
'*********************************************************
Option Explicit

Dim WshShell,objFSO 'просто обьекты
Dim strFile 'путь в System32
Dim objFile 'имя autoexec.nt
Dim strCharacters 'строка символов
Dim numbCharacters 'кол-во совпадений в строке

set WshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")

'Читаем файл autoexec.nt

strFile = WshShell.ExpandEnvironmentStrings("%WinDir%") & "\system32\autoexec.nt"
Set objFile = objFSO.OpenTextFile(strFile, 1)
Do Until objFile.AtEndOfStream
strCharacters = objFile.ReadLine
numbCharacters = inStr(1,strCharacters,"kb16")
if numbCharacters<>0 Then
Wscript.Echo "Уже установлено! Проверьте"
Wscript.Echo strCharacters
wscript.echo "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes\00000409 = " _
& WshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes\00000409")
Exit Do
End if
Loop
objFile.Close

'если kb16.com не найден то мы его добавляем

if numbCharacters = 0 Then
Set objFile = objFSO.OpenTextFile(strFile, 8) 'открываем файл на добавление информации
objFile.WriteLine
objFile.WriteLine "REM Ввод букв DOS сесиях"
objFile.WriteLine "lh %SystemRoot%\system32\kb16.com ru"
objFile.Close
WshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes\00000409","ru"
wscript.echo "Изменения завершены"
End if
------------------------------------------------
копируем весь этот текст в файл с расширением vbs (например ru_dos.vbs) и запускаем на том компьютере, который хотим переделать.
Перезагружаемся и проверяем.

З.Ы. После выполнения запуск keyrus через батник - отключаем.
Поскольку Ничто не есть Нечто, все, что не Нечто есть Ничто; а тот факт, что Нечто не есть Ничто, является чрезвычайно веским доводом в пользу Ничто, особенно для людей, искушенных в житейских делах.

Г. Фильдинг

Изображение


#9 OFFLINE   Samanta



  • 6 сообщений

Отправлено 20 Октябрь 2008 - 10:08

Просмотр сообщенияMaikll (20.10.2008, 11:08) писал:

Вопрос: В DOS-приложениях не переключается раскладка клавиатуры на русскую, хотя русские буквы отображаются нормально.
Ответ: Для решения необходимо в реестре по адресу:
HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control -> KeyboardLayout
изменить значение ключа 00000409 в папке DosKeybCodes на "ru".

Кроме этого, в файле "autoexec.nt", расположенном в Windows\system32, надо добавить строку "lh %SystemRoot%\system32\kb16.com ru" (без кавычек). После перезагрузки переключение раскладки клавиатуры в DOS-приложениях будет производиться комбинациями Ctrl+Left Shift (английская) и Ctrl+Right Shift (русская). Данный метод нормально работает в том случае, если Language settings for the system (апплет Regional Options) в качестве Default стоит Cyrilic.

Именно это мне и помогло :doh:
Спасибо большое!!!





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных

Яндекс.Метрика