Программное переключение языка ввода для win7 64b
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Программное переключение языка ввода для win7 64b

Программное переключение языка ввода для win7 64b

Ответ
Поиск в этой теме
Непрочитано 03.12.2010, 11:45 #1
Программное переключение языка ввода для win7 64b
AlexV
 
Инженер
 
С-Пб
Регистрация: 02.10.2008
Сообщений: 3,692

Собственно, хотелось бы знать, как сие можно осуществить.. Желательно из VBA.. В 32-битных системах работала такая функция:
Код:
[Выделить все]
Declare Function LoadKeyboardLayout Lib "user32" _
  Alias "LoadKeyboardLayoutA" (ByVal HKL As String, ByVal Flags As Long) As Long
Обращения к ней переключали раскладку:
Код:
[Выделить все]
LoadKeyboardLayout "00000419", 1 'на русский
'***
LoadKeyboardLayout "00000409", 1'to  eng
Как бы это дело реализовать под 64 бита?
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
Просмотров: 7765
 
Непрочитано 03.12.2010, 13:16
#2
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Посмотри может это поможет: Автоматический переключатель языка
Я имею ввиду это: (vlax-invoke-method WScript "SendKeys" "^+")
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 03.12.2010, 13:45
#3
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Цитата:
Сообщение от VVA Посмотреть сообщение
Посмотри может это поможет: Автоматический переключатель языка
Я имею ввиду это: (vlax-invoke-method WScript "SendKeys" "^+")
VVA, я в лиспе практически не ориентируюсь.. Попытался предложенную тобой функцию запустить, но автокад ругается:
Код:
[Выделить все]
 no function definition: VLAX-GET-OR-CREATE-OBJECT
Могу предположить, что "WScript.Shell" остался тоже в 32-битном прошлом и для 64 бит надо чем-то его заменить?
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 03.12.2010, 14:07
#4
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


http://autolisp.ru/2010/06/09/no-fun...t-acad-object/ ?
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Автор темы   Непрочитано 03.12.2010, 14:28
#5
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Цитата:
Сообщение от Лиспер Посмотреть сообщение
Спасибо! Вобщем, "я его слепила из того что было" :
Код:
[Выделить все]
(defun C:rus_eng()
(vl-load-com)
(setq WScript (vlax-get-or-create-object "WScript.Shell"))
(vlax-invoke-method WScript "SendKeys" "^+")
(vlax-release-object WScript)
(princ "!")
)
Ошибок при выполнении не выдает, но раскладка не переключается.. интересно, а что за параметр "^+"?
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 03.12.2010, 14:30
#6
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


AlexV, Я имел ввиду не лисп, а способ
Код:
[Выделить все]
(setq WScript (vlax-get-or-create-object "WScript.Shell"))
(vlax-invoke-method WScript "SendKeys" "^+")
(vlax-release-object WScript)
На VBA:
1. Создать объект "WScript.Shell"
2. Вызвать метод "SendKeys" с параметром "^+"
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 03.12.2010 в 16:36.
VVA вне форума  
 
Непрочитано 03.12.2010, 14:32
1 | #7
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


Цитата:
Сообщение от AlexV Посмотреть сообщение
интересно, а что за параметр "^+"?
http://msdn.microsoft.com/en-us/libr...83(VS.85).aspx ?
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 03.12.2010, 14:35
#8
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Лиспер, Дополню ссылку Лиспер'а:
"^+" - Ctrl+Shift Может у тебя раскладка по Alt+Shift переключается
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 03.12.2010, 14:36
#9
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Тогда надо, наверное, так (чтобы уж точно и гарантированно):
Код:
[Выделить все]
 (setq WScript (vlax-get-or-create-object "WScript.Shell"))
  (vlax-invoke-method WScript "SendKeys" "^+")
  (vlax-invoke-method WScript "SendKeys" "%+")
  (vlax-release-object WScript)
Do$ вне форума  
 
Непрочитано 03.12.2010, 14:37
#10
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


Я из вредности поставлю 3 языка в системе (кстати, не далее как позавчера такое видел)))
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 03.12.2010, 14:39
#11
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Ну переключение от этого не перестанет происходить
Do$ вне форума  
 
Непрочитано 03.12.2010, 14:44
#12
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


Ага, с русского на английский, потом на украинский, потом на немецкий... Не, тут надо как-то именно через Declare существовать. Может, вместо User32 надо что-то другое ставить?
P.S. С VB не дружу ни разу.
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Автор темы   Непрочитано 03.12.2010, 15:19
#13
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Ну да, все довольно просто в плане переключения оказалось..
Код:
[Выделить все]
Dim objShell As Object
Set objShell = CreateObject("WScript.Shell")
objShell.SendKeys "^+"
objShell.SendKeys "%+"
Еще бы научиться узнавать текущую раскладку..
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 03.12.2010, 15:38
#14
Лиспер


 
Регистрация: 11.10.2010
Сообщений: 979


http://social.msdn.microsoft.com/For...1-9542fb5dbb53 ?
Далеко не уверен, что это "именно то"
---
Добавлено:
Вот еще нашел: http://stackoverflow.com/questions/4...ista-using-vba
__________________
(/= RegDate StartReadDate)
Лиспер вне форума  
 
Непрочитано 04.12.2010, 00:42
#15
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Скорее поможет это: http://stackoverflow.com/questions/4.../563552#563552
Александр Ривилис вне форума  
 
Непрочитано 16.09.2011, 13:00
#16
sasha_lif

Дизайнер-конструктор
 
Регистрация: 29.05.2004
Kiev
Сообщений: 1,179
<phrase 1=


А готового решения нет ? :
__________________
Kiev, Ukraine
sasha_lif вне форума  
 
Непрочитано 19.09.2013, 12:12
#17
sasha_lif

Дизайнер-конструктор
 
Регистрация: 29.05.2004
Kiev
Сообщений: 1,179
<phrase 1=


Апну тему: за два года ни у кого не появилось решения по АВТОМАТИЧЕСКОМУ переключению языка для системы Win 7 или Win 8 для 64 bit ?

По аналогии с Key_switch.dvb
Т.е. по умолчанию стоит англ. язык, при заходе в Mtext- автоматом переключается на рус
__________________
Kiev, Ukraine
sasha_lif вне форума  
 
Непрочитано 30.07.2015, 10:33
#18
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


sasha_lif, вот появилось AutoLng. Не тестировал. Offtop: Регистрация нужна.
вот она http://forum.dwg.ru/showpost.php?p=1387482&postcount=8

Последний раз редактировалось Хмурый, 30.07.2015 в 10:40.
Хмурый вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Программное переключение языка ввода для win7 64b



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Самопроизвольное переключение языка с английского на русский Natali m AutoCAD 9 04.04.2012 19:14
Google SketсhUp в помощь архитекторам. Как и где приобрести программу? Igla Прочее. Программное обеспечение 14 03.07.2009 17:02
Internet Explorer - переключение языка Shoorup Прочее. Программное обеспечение 8 08.01.2009 21:31
Программное переключение профилей 480725 Программирование 8 30.10.2008 17:17
NanoСПДС gest Другие CAD системы 401 15.07.2008 14:50