Имя пользователя:
Пароль:
 

Показать сообщение отдельно
MKN MKN вне форума

Ветеран


Сообщения: 2398
Благодарности: 573

Профиль | Отправить PM | Цитировать


Цитата Limonica:
определения раскладки клавиатуры или языка ОС »
Определения раскладки клавиатуры и языковых параметров ОС

Код: Выделить весь код
OutFile "LocaleINFO.exe"
Name "Detect User Locale INFO"
Caption "Detect User Locale INFO"
 
!define LOCALE_ILANGUAGE '0x1' ;System Language Resource ID     
!define LOCALE_SLANGUAGE '0x2' ;System Language & Country [Cool]
!define LOCALE_SABBREVLANGNAME '0x3' ;System abbreviated language
!define LOCALE_SNATIVELANGNAME '0x4' ;System native language name [Cool]
!define LOCALE_ICOUNTRY '0x5' ;System country code     
!define LOCALE_SCOUNTRY '0x6' ;System Country
!define LOCALE_SABBREVCTRYNAME '0x7' ;System abbreviated country name
!define LOCALE_SNATIVECTRYNAME '0x8' ;System native country name [Cool]
!define LOCALE_IDEFAULTLANGUAGE '0x9' ;System default language ID
!define LOCALE_IDEFAULTCOUNTRY  '0xA' ;System default country code
!define LOCALE_IDEFAULTCODEPAGE '0xB' ;System default oem code page
 
Function ".onInit"
System::Call 'kernel32::GetSystemDefaultLangID() i .r0'
System::Call 'kernel32::GetLocaleInfoA(i 1024, i ${LOCALE_SNATIVELANGNAME}, t .r1, i ${NSIS_MAX_STRLEN}) i r0'
System::Call 'kernel32::GetLocaleInfoA(i 1024, i ${LOCALE_SNATIVECTRYNAME}, t .r2, i ${NSIS_MAX_STRLEN}) i r0'
System::Call 'kernel32::GetLocaleInfoA(i 1024, i ${LOCALE_SLANGUAGE}, t .r3, i ${NSIS_MAX_STRLEN}) i r0'
MessageBox MB_OK|MB_ICONINFORMATION "Your System LANG Code is: $0. $\r$\nYour system language is: $1. $\r$\nYour system language is: $2. $\r$\nSystem Locale INFO: $3."

System::Call 'user32::GetKeyboardLayout(i 0)i.r0'
IntFmt $0 "%08x" $0
StrCpy $1 $0 "" -4
MessageBox MB_OK " Установленный по умолчанию DefaultLangID  :  $1 "
; 0409 - английский
; 0419 - русский
FunctionEnd
 
Section 
SectionEnd
Раскладка клавиатуры по умолчанию - это раскладка, установленная в языковой панели, т.е. , которая будет после загрузки ОС
Не путать с текущей раскладкой, которая вышеприведённым кодом НЕ определяется !

С логикой "если бы, да кабы" - разберёшься сам. Примеров тьма.

Последний раз редактировалось MKN, 21-11-2013 в 13:21.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:15, 21-11-2013 | #784