Код 1C v 7.x //примеры Sserj
Процедура СменитьРаскладку(Реж)
//Можно и просто через wrapper .dll
//Wrapper = CreateObject("DynamicWrapper ");
//Wrapper .Register("USER32.DLL", "ActivateKeyboardLayout", "i=ll", "f=s", "r=l");
//Wrapper .Register("USER32.DLL", "LoadKeyboardLayout", "i=sl", "f=s", "r=l");
//rus = Wrapper .LoadKeyboardLayout("00000419", 0);
//eng = Wrapper .LoadKeyboardLayout("00000409", 0);
//Если Реж = "RUS" Тогда
// Wrapper .ActivateKeyboardLayout(rus, 0);
//ИначеЕсли Реж = "EN" Тогда
// Wrapper .ActivateKeyboardLayout(eng , 0);
//КонецЕсли;
Если Не (Константа.ВключатьНамЛоокВТелефонах = Истина) Тогда
Возврат;
КонецЕсли;
wshShell=createObject("wScript.shell");
Если Реж = "RUS" Тогда
wshShell.SendKeys("^(8)",0);
ИначеЕсли Реж = "EN" Тогда
wshShell.SendKeys("^(9)",0);
КонецЕсли;
КонецПроцедуры // СменитьРаскладку(Реж)
//ЕЩЕ
//Обновляем хоткеи смены языков, для подмены в полях где нужна английская раскладка
текст = СоздатьОбъект("текст");
текст.ДобавитьСтроку("Windows Registry Editor Version 5.00");
текст.ДобавитьСтроку("");
текст.ДобавитьСтроку("[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000100]");
текст.ДобавитьСтроку("""Virtual Key""=hex:39,00,00,00");
текст.ДобавитьСтроку("""Key Modifiers""=hex:02,c0,00,00");
текст.ДобавитьСтроку("""Target IME""=hex:09,04,09,04");
текст.ДобавитьСтроку("");
текст.ДобавитьСтроку("[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys\00000101]");
текст.ДобавитьСтроку("""Virtual Key""=hex:38,00,00,00");
текст.ДобавитьСтроку("""Key Modifiers""=hex:02,c0,00,00");
текст.ДобавитьСтроку("""Target IME""=hex:19,04,19,04");
ИмяФайла = КаталогИБ() + "LangHotKey.reg";
Попытка
текст.Записать(ИмяФайла);
wshShell=createObject("wScript.shell");
StrComand = "regedit /S " + СокрЛП(ИмяФайла);
wshShell.Run(StrComand,1);
//Задерживаемся, иначе скрипт не успевает прочитать файл
Для Сч=1 По 50000 Цикл
КонецЦикла;
ФС.УдалитьФайл(ИмяФайла);
Исключение
КонецПопытки;