powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Изменение языка системы
15 сообщений из 15, страница 1 из 1
Изменение языка системы
    #32380121
Macik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очень,очень нужна помощь... :)
У меня на страничке есть несколько текстовых полей.
В каждом из них нужно писать на другом языке... :(

Как автоматически менять язык в этих полях (без того чтобы пользователю нужно было нажимать SHIFT + ALT) ?

Спасибо.
...
Рейтинг: 0 / 0
Изменение языка системы
    #32380162
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сюда копай :-)

LoadKeyboardLayout
The LoadKeyboardLayout function loads a new input locale identifier (formerly called the keyboard layout) into the system. Several input locale identifiers can be loaded at a time, but only one per process is active at a time. Loading multiple input locale identifiers makes it possible to rapidly switch between them.

Microsoft Platform SDK
...
Рейтинг: 0 / 0
Изменение языка системы
    #32381049
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например включить русскую раскладку клавиатуры


DWORD res = (DWORD)GetKeyboardLayout(NULL);
if(res == 0x04090409)
{
LoadKeyboardLayout("04190419",KLF_REORDER);
ActivateKeyboardLayout(0,KLF_ACTIVATE);
}
...
Рейтинг: 0 / 0
Изменение языка системы
    #32382573
Macik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо... :)
А можно, тогда, ещё один маааленький вопрос - а куда мне эту функцию приткнуть?

Спасибо,очень жду...
...
Рейтинг: 0 / 0
Изменение языка системы
    #32383797
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне пришлось решать аналогичную задачу:
а) в момент передачи фокуса контролу TextBox установить русскую раскладку клавиатуры;
б) предупредить пользователя, что в момент ввода клавиатура находится в такой-то раскладке.
Вот фрагмент программы на VB6:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
Option Explicit
Private Declare Function GetKeyboardLayoutName Lib  "user32"  _
Alias  "GetKeyboardLayoutNameA"  (ByVal pwszKLID As String) As Long
'http://sharig.webzone.ru/global/stat/keyboard.htm#раскладка%20клавиатуры
Private Declare Function ActivateKeyboardLayout Lib "user32" _
                        (ByVal HKL As Long, ByVal flags As Long) As Long
Private Const HKL_PREV As Long = 0
' --------------------------------------------
 

Private Function GetFlowKbd() As Long
'Интерфейс VB-->API:
'возвращает код текущей раскладки в том виде,
'который можно наблюдать в RegEdit, ветвь
'HKLM\System\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes
    Dim KeybLayoutName As String
     KeybLayoutName = String( 9 ,  0 )
     GetKeyboardLayoutName KeybLayoutName
     GetFlowKbd = CLng(Trim(KeybLayoutName))
End Function

'-------------------------------------------
Private Sub SetRusKbd()
'вызывается из обработчика событиия Form_Activate.
'Перебирает предопределённые раскладки и устанавливает RU:
Dim i As Long
For i = 1 To 10         'скорректировать, исходя из реалий.
    If GetFlowKbd() =  419  Then Exit Sub
    ActivateKeyboardLayout HKL_PREV,  0   'cледующая...
Next i
    lblComment = "Unable to locate Russian Keyboard!!!"
End Sub
' -------------------------------------------
 

Private Sub txtImage_KeyDown(KeyCode As Integer, Shift As Integer)
If txtImage.Visible = False Then Exit Sub   'в момент инициализации формы
'Проверка раскладки клавиатуры:
'Номер      409 - английская,   419 - русская;      422 - украинская
'Цвета:   &H00C0C0FF& розовый  &H80000005& белый   &H0080FFFF&    жовтий
'frmPattern - контрол Frame, текст рамки изменяем в зависимости от тек.раскл.
Dim KeybLayoutName As String
KeybLayoutName = String(9, 0)
GetKeyboardLayoutName KeybLayoutName
Dim s As String, L As Long
s = Trim(KeybLayoutName)
If IsNumeric(s) Then
    Select Case CLng(s)
        Case 409: txtImage.BackColor = &HC0C0FF: frmPattern = "What find?"
        Case 419: txtImage.BackColor = &H80000005: frmPattern = patCaptStd
        Case 422: txtImage.BackColor = &H80FFFF: frmPattern = "Що шукаємо?"
        Case Else
                  txtImage.BackColor = &H80000008
        lblComment = "Unable to locate Russian Keyboard!!!"
   End Select
End If
'Основная обработка нажатий клавиш в окне ввода образца поиска:
' ...............
End Sub


Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
'Определение нажатия клавиши и выбор метода его обработки:
'...........................

'формирование  "горячих"  клавиш в зависимости от текущей раскладки клавы:
Select Case GetFlowKbd()
    Case  419 ,  422 
                btnAttr.Caption = IIf(rowAttr.Editable, btnOK_RU, btnAttrRU)
                optCreate.Caption = optCreateRU
                optEdit.Caption = optEditRU
    Case Else
                btnAttr.Caption = IIf(rowAttr.Editable, btnOK_EN, btnAttrEN)
                optCreate.Caption = optCreateEN
                optEdit.Caption = optEditEN
End Select
End Sub

GПроанализируй и выбери, "куда приткнуть" в зависимости от контекста твоей задачи...
...
Рейтинг: 0 / 0
Изменение языка системы
    #32388585
Macik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое за столь подробную информацию. :)
Но остался ещё один маленький вопрос:
если всю эту процедуру я хочу проделать на WEB страничке,
значит мне нужно чтобы у каждого клиента был ActiveX
с данной функцией ?
Спасибо, жду... :)
...
Рейтинг: 0 / 0
Изменение языка системы
    #32388720
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> если всю эту процедуру я хочу проделать на WEB страничке
, тогда следует отказаться от API - ведь *nix'соиды будут дискиминированы...
...
Рейтинг: 0 / 0
Изменение языка системы
    #32390099
Macik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прости, но я не очень поняла - так что же мне можно сделать ?

Спасибо.
...
Рейтинг: 0 / 0
Изменение языка системы
    #32392117
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> если всю эту процедуру я хочу проделать на WEB страничке
Страничка доступна только в интрасети?
Тогда ты можешь создать и использовать ActiveX.
А как инсталлировать ActiveX, ты, наверное, знаешь.
...
Рейтинг: 0 / 0
Изменение языка системы
    #32394611
Macik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо,понятно,значит, без ActiveX не обойтись :((

А есть возможность, автоматически(из апликации) проинсталлировать
этот ActiveX для каждого клиента?

Спасибо большое,жду.
...
Рейтинг: 0 / 0
Изменение языка системы
    #32394615
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поидее
там все происходит автоматически

возмем пример

сделал я свою прогу
завернул в Acivex и воа-ля при о ткрытие странички она у меня автоматом запустилась

но все это я пробовал на Builder C++
____
...
Рейтинг: 0 / 0
Изменение языка системы
    #32394654
Macik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ok, и как ты обращался к ActiveX из странички, что при открытии он автоматически запустился?

Спасибо.
...
Рейтинг: 0 / 0
Изменение языка системы
    #32394673
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я когда эксперементировал
то создавал фому
потом двумя манипуляциями обертывал в ActiveX
так же он генерил html-ку
и ничего больше :))
...
Рейтинг: 0 / 0
Изменение языка системы
    #32409967
Macik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое всем !!!
Работает!!! :))
...
Рейтинг: 0 / 0
Изменение языка системы
    #32410031
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот только тонкость....
ActiveX у большенства пользователей отключен для инета...
особенно неподписанный... Дабы попросту вирусов не нахватать...
так что для инета это не пойдет
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Изменение языка системы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]