Проблема с кириллицей
#1
Отправлено 06 октября 2004 - 10:31
Суть следущая. Робот заполняет поля формы кириллицей, а раскладка клавиатуры в тестируемом приложении английская. Соответсвенно, при запуске скрипта отображаются символы неизвестно какого типа
Как можно решить данную проблему? Т. е. как определить раскладку на данный момент и, соответсвенно, переключить её в руссифицированный режим? Или может есть совсем другой алгоритм?
#2
Отправлено 06 октября 2004 - 13:53
#3
Отправлено 06 октября 2004 - 13:59
У всех машины настроены по разному, а тем более тестовые станции
Мне такой вариант тоже первым в голову пришел, но как то не хочется привязываться к настройкам конкретной машины.
Существуте какой более универсальный метод?
#4
Отправлено 06 октября 2004 - 14:25
Тестовые станции как раз легче всего привести к единому стандарту - что и как там должно быть установлено. Универсальный подход - открываете Notepad (или он тоже не везде установлен? тогда в самом тестируемом приложении) и вводите любое слово. Потом считываете его и сравниваете с эталонным "русским" словом. Если сравнение успешно - значит раскладка русская.У всех машины настроены по разному, а тем более тестовые станции
#5
Отправлено 08 октября 2004 - 08:56
В форуме уже было представлено решение применительно к CQ, попробовал - работает и для Робота
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1250"="c_1251.nls"
"1252"="c_1251.nls"
и не надо гонять бедного Робота с лишними задачами по тулбару:))
#6
Отправлено 08 октября 2004 - 09:23
Нельзя обсуждать здесь ересь, если только мы не размышляем, как ее уничтожить.
#7
Отправлено 08 октября 2004 - 10:03
#8
Отправлено 08 октября 2004 - 10:10
За решение, безусловно, спасибо :)Мне казалось этот форум посвящен решению проблем, связанных с Rational Tools
Только способ, возможно, не совсем универсальный?
Нельзя обсуждать здесь ересь, если только мы не размышляем, как ее уничтожить.
#9 Гость_Sam_*
Отправлено 21 января 2005 - 10:26
Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long
Global Const HKL_NEXT = 1
Global Const HKL_PREV = 0
Global Const KLF_REORDER = &H8
Sub МоеИмяПроцедуры()
Dim lCodeKeybord As Long
Dim CodeKeybord As Long
lCodeKeybord = GetKeyboardLayout(CodeKeybord)
If lCodeKeybord = 67699721 Then 'если английский, то все нормально
'Выполняем необходимые действия
Else 'если нет, то переключаем на английский
'в моем случае и выполняем необходимые действия
Call ActivateKeyboardLayout(HKL_NEXT, KLF_REORDER)
'Выполняем необходимые действия
'Переключаем на предыдущую раскладку, в моем случае русская
Call ActivateKeyboardLayout(HKL_PREV, KLF_REORDER)
End If
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных