Что нового

Ошибка в документации - @OSLang и @KBLayout

Suppir

Продвинутый
Сообщения
967
Репутация
62
Найдите через поиск "@OSLang codes" и откройте Language Codes.
Там перечислены возвращаемые значения макроса @KBLayout, который показывает, в какой раскладке у вас сейчас клавиатура.

Если @KBLayout = 0419, то в русской
если @KBLayout = 0409, то в английской
и т.д.

Однако в Windows XP эти коды другие. Русской расскладке соответствует "00000419", а английской "00000409".
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: Ошибка в документации - @OSLang codes

Suppir
ну там коды как бы для @OSLang, а не для @KBLayout
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Re: Ошибка в документации - @OSLang codes

Я так написал, чтобы проще было найти в справке (найти сложно страницу).
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: Ошибка в документации - @OSLang codes

Suppir
неважно как ты написал. в справке приведены коды которые относятся к значениям возвращаемым макро @OSLang а не @KBLayout. там так и написано - Possible return values (strings) of @OSLang, и утверждение
Там перечислены возвращаемые значения макроса @KBLayout
неверно
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Re: Ошибка в документации - @OSLang codes

Я хотел дать знать, что эти possible values не соответсвуют действительности в XP.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Re: Ошибка в документации - @OSLang codes

Suppir [?]
Я хотел дать знать, что эти possible values не соответсвуют действительности в XP.
они соответствуют @OSLang. причем тут @KBLayout?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Re: Ошибка в документации - @OSLang codes

Suppir, эти коды соответствуют основному языку (Primary Language), он же LCID. Прочтите здесь.
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Re: Ошибка в документации - @OSLang codes

Yashied, да, я знаю, что соответствует основному языку. Проблема именно в возвращаемом значении. В документации сказано, что вернет "0409", а возвращает "00000409", т.е. с нулями в начале. Это может вызвать ошибку, если использовать макрос @KBLayout для проверки основного языка.

Код:
MsgBox(0, "", @KBLayout)


вернет не "0409", как сказано в документации, а "00000409".



Добавлено:
Сообщение автоматически объединено:

Kaster [?]
неважно как ты написал. в справке приведены коды которые относятся к значениям возвращаемым макро @OSLang а не @KBLayout. там так и написано - Possible return values (strings) of @OSLang, и утверждение неверно

Вот картинка. Я кликаю в appendix на @KBLayout и показываются неверные коды. Возможно, они работают в windows 2000, но в XP перед кодами нужно ставить 4 нуля. Так как народ сейчас в основном сидит на XP и Windows 7, наверное, имеет смысл поменять этот раздел справки.

10969700.png
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Re: Ошибка в документации - @OSLang codes

А в Vist'e разве возвращает только четыре цифры?

Да, согласен, как-то мутно написано в справке, хотя и явно не сказано, что эти коды именно для @KBLayout. Тогда это ошибка в документации к @KBLayout, а не к @OSLang.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Suppir
Предупреждение
В случае больших скриншотов, советую использовать миниаютюры со ссылками на всю картинку.

а по теме,
Suppir [?]
Я кликаю в appendix на @KBLayout и показываются неверные коды.
да, действительно. это я проглядел. но в таком случае ошибка в разделе Macro Reference, где есть ссылка на значения @OSLang, потому как в самой ссылке написано все правильно
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Kaster, да меня это ввело в заблуждение. Может и любого пользователя ввести.
 

SyDr

Сидра
Сообщения
651
Репутация
158
У меня на 7 также вовзращает в виде 8 символов.

Возможно, это проглядели. В примере используется StringInStr
 
Верх