Язык операционной системы?

Тема в разделе "WASM.BEGINNERS", создана пользователем paralvic, 10 янв 2011.

  1. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    Вопрос: Как узнать язык операционной системы программно на ассемблере?

    Код (Text):
    1. invoke GetOEMCP
    2. .if eax == 866
    3. .endif
    Код (Text):
    1. comment ® ¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤
    2.  
    3. 437 MS-DOS United States
    4. 708 Arabic (ASMO 708)
    5. 709 Arabic (ASMO 449+, BCON V4)
    6. 710 Arabic (Transparent Arabic)
    7. 720 Arabic (Transparent ASMO)
    8. 737 Greek (formerly 437G)
    9. 775 Baltic
    10. 850 MS-DOS Multilingual (Latin I)
    11. 852 MS-DOS Slavic (Latin II)
    12. 855 IBM Cyrillic (primarily Russian)
    13. 857 IBM Turkish
    14. 860 MS-DOS Portuguese
    15. 861 MS-DOS Icelandic
    16. 862 Hebrew
    17. 863 MS-DOS Canadian-French
    18. 864 Arabic
    19. 865 MS-DOS Nordic
    20. 866 MS-DOS Russian (former USSR)
    21. 869 IBM Modern Greek
    22. 874 Thai
    23. 932 Japan
    24. 936 Chinese (PRC, Singapore)
    25. 949 Korean
    26. 950 Chinese (Taiwan; Hong Kong SAR, PRC)  
    27. 1361 Korean (Johab)
    28.  
    29. ¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤=-=¤ ®
    Что-то здесь не стройно. Неужели это все коды? А Deutsch?
    Есть ли ещё варианты, узнать какой язык?
    Например в формате: "Русский", "English"
     
  2. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.250
    через API операционной системы...

    то, что перечисленные коды начинаются с 437, а не с 0, и идут не по порядку, дает повод задуматься о том, что промежуточные коды имеют право на существование))

    API операционной системы должно позволять узнать язык в текущей локализации операционной системы... то есть строку получить можно, если вы об этом...

    ЗЫ решите, какая операционная система, а API, я думаю, вам гугл подскажет...
     
  3. newbie

    newbie New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    1.246
    Либо считывать название папки Мои Документы и соответственно определять язык из заранее заготовленных вариантов
     
  4. Igor1024

    Igor1024 Васил Троянов Боянов (Azis)

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    Либо считывать название папки Мои Документы и соответственно определять язык из заранее заготовленных вариантов
    Кто сказал что речь идёт только о форточках?
     
  5. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Как бэ не самый надежный вариант, лучше через API и ничего не придумывать лишнего.
    paralvic, скачай справочник по API той операционной системы, для которой ты хочешь узнать язык. Такая функция есть практически в любой ОС.
     
  6. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Как узнать не знаю, но newbie определённо становится победителем конкурса костылей.
     
  7. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    paralvic
    DOS поддерживал всего пару десятков языков. Собственно что спросили то и получили.
     
  8. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    В "Макрософаке":
    Узнаем имя папки Мои документы функцией : SHGetFolderPath
    Она смотрит реестр:
    Код (Text):
    1. Windows Registry Editor Version 5.00
    2.  
    3. [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders]
    4. "!Do not use this registry key"="Use the SHGetFolderPath or SHGetKnownFolderPath function instead"
    5. "Personal"="C:\\Yoprst Jungle"
    Вопрос знатокам: Yoprst Jungle - какая страна?
     
  9. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    А ответа ещё не было.

    По кодовым страницам очень ненадежно определять язык операционной системы
    функциями типа Get..CP..

    Вот список всех:
     
  10. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Код (Text):
    1. GetModuleHandle("ntdll.dll");
    2. EnumResourceLanguages(..., RT_VERSION, MAKEINTRESOURCE(1), ...);
    трололо :)
     
  11. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    Отличный девиз:
    То, что не удается запрограммировать на ассемблере, приходится паять.

    ntdll.dll:
    Английский (США)

    Ещё вариант:
    Код (Text):
    1.     .686p
    2.     .MMX
    3.     .XMM
    4.     .model flat, stdcall
    5.     option casemap :none  ; регистрозависимы
    6.     include \MASM32\INCLUDE\user32.inc
    7.     include \MASM32\INCLUDE\kernel32.inc
    8.     includelib \MASM32\LIB\user32.lib
    9.     includelib \MASM32\LIB\kernel32.lib
    10. .code
    11.     tit db ":Your language is:",0
    12.     lc dd 0
    13.     buf db 32 dup(0)
    14.     buf_len equ $ - offset buf
    15.     LOCALE_SENGLANGUAGE equ 01001h
    16. start:
    17.     CALL GetSystemDefaultLCID ;здесь уже 00000419 = Russian
    18.     mov lc, eax
    19.  
    20.     invoke GetLocaleInfoA, lc, LOCALE_SENGLANGUAGE, addr buf, buf_len
    21.     invoke MessageBox,0,addr buf, addr tit,100030h
    22.     invoke ExitProcess, 0
    23. end start
    У кого какие будут результаты выполнения?
     
  12. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    Вот список возможных языков Виндовс
    Он достаточно длинный, поэтому прикреплен файлом.

    Первая строчка - 0 идентификатор
    последняя - 1000h (дальше скорее всего ничего нет)

    Рад, что записан латиницей, представляете всё это на национальных языках?

    КОГДА БУДУТ МОЛДАВСКИЕ ОПЕРАЦИОННЫЕ СИСТЕМЫ?
     
  13. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Самый объебосный вариант)
     
  14. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    Great
    А вот и нет!!!
    Чтобы метод был индусским надо вывести окошко и попросить пользователя ввести язык, а потом уже тысяча ифоф и сравнения названия папки, а если результаты не совпадают, то резкий шутдаун... чтобы не повадно врать было... ;)
     
  15. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    Либо считывать название папки Мои Документы

    Не во всех языках мира присутствует это понятие а стало быть и папка как таковая.

    Так например в Челябинской локализации эта папка отсутствует. В ней вообще нет никаких папок потому, что все данные храняца в одном файле - user33.dat и никакие усложнения с директориями не требуются. Очень удобно хранить все данные в одном файле - вся информация всегда под рукой, а резервное копирование вообще доступно любому школьнику.
     
  16. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    PSR1257
    А я думал, что они суровей... могли бы просто хранить на диске, без фат вообще. Резервное копирование не слишком усложняется - скопировал посекторно и всё...
     
  17. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    Z3N

    скопировал посекторно

    Если мы про Челябинскую ФС, то там тоже все проще, hdd отфарматирован на один большой сектор. Тоже очень удобно, BIOS'у не нужна возня с этм MBR.
     
  18. newbie

    newbie New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    1.246
    угу и процессор в виде одного транзистора, так чтоли?
     
  19. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    newbie
    неа, в виде одной лампы.
     
  20. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    ... осталось добавить что CPU Chelyabinsk может быть перепрограммирован на совершенно любые команды включая n-операндные.