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

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

Спасибо.
...
Рейтинг: 0 / 0
19.01.2004, 13:22
    #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
19.01.2004, 22:50
    #32381049
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение языка системы
например включить русскую раскладку клавиатуры


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

Спасибо,очень жду...
...
Рейтинг: 0 / 0
21.01.2004, 19:23
    #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
27.01.2004, 09:39
    #32388585
Macik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение языка системы
Спасибо большое за столь подробную информацию. :)
Но остался ещё один маленький вопрос:
если всю эту процедуру я хочу проделать на WEB страничке,
значит мне нужно чтобы у каждого клиента был ActiveX
с данной функцией ?
Спасибо, жду... :)
...
Рейтинг: 0 / 0
27.01.2004, 10:58
    #32388720
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение языка системы
> если всю эту процедуру я хочу проделать на WEB страничке
, тогда следует отказаться от API - ведь *nix'соиды будут дискиминированы...
...
Рейтинг: 0 / 0
28.01.2004, 10:02
    #32390099
Macik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение языка системы
Прости, но я не очень поняла - так что же мне можно сделать ?

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

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

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

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

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

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

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


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