// Пример от Jaap Vduul // Пример чтения таблицы из OpenOffice: // ===================================== ServiceManager = СоздатьОбъект("com.sun.star.ServiceManager"); Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop"); script = СоздатьОбъект("ScriptControl"); script.Language = "vbs"; script.AddCode ( "Dim Parameters() | |Sub InitParameters(Size) | | Erase Parameters | | If Size > 0 Then | Redim Parameters(Size - 1) | End If | |End Sub | |Sub SetParameter(ServiceManager, Name, Value, Index) | | Set PropertyValue = ServiceManager.Bridge_GetStruct(""com.sun.star.beans.PropertyValue"") | PropertyValue.Name = Name | PropertyValue.Value = Value | | Set Parameters(Index) = PropertyValue | |End Sub | |Sub SetBooleanParameter(ServiceManager, Name, Value, Index) | | SetParameter ServiceManager, Name, Cbool(Value), Index | |End Sub | |Function LoadDocument(ComponentLoader, URL, TargetFrameName, SearchFlags) | | Set LoadDocument = ComponentLoader.loadComponentFromURL(URL, TargetFrameName, SearchFlags, Parameters) | |End Function | |Sub CloseDocument(Document) | | Document.Close True | |End Sub" ); script.Run("InitParameters", 2); script.Run("SetBooleanParameter", ServiceManager, "ReadOnly", 1, 0); script.Run("SetBooleanParameter", ServiceManager, "Hidden", 1, 1); URL = ПреобразоватьВURL(КаталогПриказов + НомерПриказа + ".rtf"); Документ = script.Run("LoadDocument", Desktop, URL, "_blank", 0); Таблица = Документ.TextTables.getByIndex(0); // ссылка на первую таблицу ВсегоСтрок = Таблица.getRows().getCount(); ВсегоСтолбцов = Таблица.getColumns().getCount(); Для ИндексСтроки = 1 По (ВсегоСтрок - 1) Цикл // ИндексСтроки = 1, т.к. пропускаем заголовок Для ИндексСтолбца = 0 По (ВсегоСтолбцов - 1) Цикл Ячейка = Таблица.getCellByPosition(ИндексСтолбца, ИндексСтроки); ТекстЯчейки = Ячейка.getString(); КонецЦикла; КонецЦикла; script.Run("CloseDocument", Документ);
Сервис=СоздатьОбъект("Сервис"); Сервис.РаскладкаКлавиатуры("Russian");
Если (ЗагрузитьВнешнююКомпоненту("NetaTable.dll")=1) Тогда РовнаяТаблица=СоздатьОбъект("AddIn.NTable"); Иначе Предупреждение("Внешняя компонента AddIn.NetaTable НЕ подключена!!!"+РазделительСтрок+"Работа программы невозможна!!!"); СтатусВозврата(0); Возврат КонецЕсли; Процедура ПриНачалеВыбораЗначения(ИдентЭлемента,ФлагОтбора) Если ИдентЭлемента = "Диагноз" Тогда РовнаяТаблица.УстановитьРаскладку(67699721); ИначеЕсли ИдентЭлемента = "ИсточникФинансирования" Тогда РовнаяТаблица.УстановитьРаскладку(68748313); КонецЕсли; КонецПроцедуры
//примеры 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 Цикл КонецЦикла; ФС.УдалитьФайл(ИмяФайла); Исключение КонецПопытки;
Shell = Новый COMОбъект("WScript.Shell"); РабочийСтол = Shell.SpecialFolders("Desktop"); Ярлык = Shell.CreateShortcut(РабочийСтол + "\\Regedit.lnk"); Ярлык.TargetPath = Shell.ExpandEnvironmentStrings("%windir%\\regedit.exe"); Ярлык.WorkingDirectory = Shell.ExpandEnvironmentStrings("%windir%"); Ярлык.WindowStyle = 1; Ярлык.IconLocation = Shell.ExpandEnvironmentStrings("%windir%\\regedit.exe, 0"); Ярлык.Save();
Shell = СоздатьОбъект("WScript.Shell"); РабочийСтол = Shell.SpecialFolders("Desktop"); Ярлык = Shell.CreateShortcut(РабочийСтол + "\\Regedit.lnk"); Ярлык.TargetPath = Shell.ExpandEnvironmentStrings("%windir%\\regedit.exe"); Ярлык.WorkingDirectory = Shell.ExpandEnvironmentStrings("%windir%"); Ярлык.WindowStyle = 1; Ярлык.IconLocation = Shell.ExpandEnvironmentStrings("%windir%\\regedit.exe, 0"); Ярлык.Save();
WScript = Новый COMОбъект("WScript.Shell"); SpecialFolders = WScript.SpecialFolders; КаталогАвтозагрузки = SpecialFolders.item("AllUsersStartup"); ИмяФайлаСсылки = ПолучитьИмяФайла(КаталогАвтозагрузки, "1Cstart.lnk"); Shortcut = WScript.CreateShortcut(ИмяФайлаСсылки); Shortcut.IconLocation = "C:\Program Files\1cv81\bin\1cv8.exe"; Shortcut.TargetPath = "1Cstart"; Shortcut.Save();