powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel - блокировка языка ввода
9 сообщений из 9, страница 1 из 1
Excel - блокировка языка ввода
    #33091935
kdimetrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.
Подскажите пожалуста, а возможно ли при запуске рабочей книги заблокировать какой-то из языков ввода, оставить только один, например английский; и чтобы пользователь не смог изменять раскладку клавиатуры до тех пор, пока не закроет из книгу?
Заранее благодарен, Дмитрий.
...
Рейтинг: 0 / 0
Excel - блокировка языка ввода
    #33093900
kdimetrius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока нарыл вот это: переключает раскладку клавы. Буду рыть и дальше. Может кого это натолкнет на мысль, как заблокировать один из языков? Думал организовать проверку (через таймер), но это как-то коряво, по-моему. Может у кого появятся идеи, напишите, пожалуста. Заранее благодарен, Дима
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    Declare Function LoadKeyboardLayout Lib "user32" Alias _
"LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long 

' Переключение на английскую раскладку
Function KBDToENG()
Call LoadKeyboardLayout("00000409", &H1)
End Function 

' Переключение на русскую раскладку
Function KBDToRUS()
Call LoadKeyboardLayout("00000419", &H1)
End Function
...
Рейтинг: 0 / 0
Excel - блокировка языка ввода
    #33093975
Фотография rrrrrrrrrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, заблокируете вы один из языков. А Проект внезапно подвиснет или как-либо еще некорректно завершится его работа (или вышел новый, безглючный офис 2023?) И как тогда пользователь будет возвращать себе ввод на кириллице? Можно обрабатывать событие OnChange листа, тогда на каждое изменение ячейки можно будет переключать язык "куда надо"... Или (если критично) писать стороннее (скажем, в VB6) приложение (exe), которое сидит, скажем, в трее, и по таймеру ищет заданное окно, смотрит, активно ли оно, и если активно, то переключает раскладку.
...
Рейтинг: 0 / 0
Excel - блокировка языка ввода
    #33095795
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, теоретически это возможно. На практике это очень и очень не рекомендуется.
...
Рейтинг: 0 / 0
Excel - блокировка языка ввода
    #33097217
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlДа, теоретически это возможно. На практике это очень и очень не рекомендуется.Проще предупредить юзера:
Код: 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.
Private Declare Function GetKeyboardLayoutName Lib "user32" _
Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
'http://sharig.webzone.ru/global/stat/keyboard.htm#раскладка%20клавиатуры
'...
Private Sub txtImage_KeyDown(KeyCode As Integer, Shift As Integer)
If txtImage.Visible = False Then Exit Sub   'в момент инициализации формы
'Проверка раскладки клавиатуры:
'Номер      409 - английская,   419 - русская;      422 - украинская
'Цвета:   &H00C0C0FF& розовый  &H80000005& белый   &H0080FFFF&    жовтий
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 = "Что ищем?"
        Case  422 : txtImage.BackColor = &H80FFFF: frmPattern = "Що шукаємо?"
        Case Else
                  txtImage.BackColor = &H80000008
        lblComment = "Unable to locate Russian Keyboard!!!"
   End Select
End If
'...
End Sub
...
Рейтинг: 0 / 0
Excel - блокировка языка ввода
    #33098341
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Processor White OwlДа, теоретически это возможно. На практике это очень и очень не рекомендуется.Проще предупредить юзера:
Увижу такую программу - сотру к чертовой матери.
...
Рейтинг: 0 / 0
Excel - блокировка языка ввода
    #33098366
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlУвижу такую программу - сотру к чертовой матери.А если без эмоций, конструктивно, для дураков?
...
Рейтинг: 0 / 0
Excel - блокировка языка ввода
    #33098406
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во первых, это просто раздражает пользователя. Из той же оперы - когда программа сама начинает мышиный курсор по экрану перекидывать "на чаще нажимаемую кнопку". Или ограничать мышь в рамках своего окна.
Во вторых, сегодня ты принудительно включишь нужную тебе раскладку, а завтра понадобится написать слово на другом языке или аббревиатуру какую-нибудь и пользователь будет сосать лапу и материть программиста. Тебя материть. Тебе это надо?
В третьих, твою программу могут попытаться запустить на компьютере без русского например. А ты принудительно переключашь ее на кириллический набор и что ты будешь делать? Виснуть или падать с GPF? А падать ты будешь обязательно, потому что вставив свою функцию переключения ты будешь верить что она отработает. А она не обязана! :)
...
Рейтинг: 0 / 0
Excel - блокировка языка ввода
    #33099492
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен со 2 и 3-м.
Поэтому и привёл код, который только ПРОВЕРЯЕТ раскладку
и СООБЩАЕТ текстом и цветом фона, какая раскладка активна.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel - блокировка языка ввода
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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