Уведомления
Очистить все

Запустить какое-нибудь приложение из 1С

1 Записи
1 Пользователи
0 Likes
1,625 Просмотры
158-150 Okolokompa Форум
(@mitozzz)
Trusted Member
Присоединился: 4 года назад
Записи: 32
Создатель темы  

Если нам нужно запустить на клиентской машине какое-нибудь приложение, а клиент привык работать только с 1С, делаем следующее:

//1. Превращаем наш исполняемый файл в строку

ДД       =  Новый ДвоичныеДанные("C:\НашаПрограмма.exe");
Строка64 = Base64Строка(ДД);

//2. И добавляем его реквизитом в обработку 
//   в процедуру "ПриСозданииНаСервере".
    
 Объект.ДвоичныеДанные = Строка64;
ОпятьДвоичныеДанные    =  Base64Значение(Объект.ДвоичныеДанные);
НашаПрограмма          = "C:\НашаПрограмма.exe";    
ОпятьДвоичныеДанные.Записать(НашаПрограмма);    
ЗапуститьПриложение(НашаПрограмма);

При необходимости мы можем добавить произвольное приложение в автозапуск системы:


&НаКлиенте
Процедура ДобавитьПрограммуВАвтозапуск(ПолныйПутьКФайлу = "", ВключитьОтладку = Ложь)
      
 Символ34               = Символ(34);
 ВеткаАвтозапуска       = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run";
 СтрокаКоманды          = "Reg Add "
                          + Символ34 + ВеткаАвтозапуска + Символ34
                          + " /v " 
                          + Символ34 + "Notepad" + Символ34 
                          + " /t REG_SZ /d " 
                          + Символ34 + ПолныйПутьКФайлу + Символ34 
                          + " /f"
                          + " /reg:64";                                                                      
 ПутьКСкриптуДобавления = "C:\Users\Public\Documents\startNotepad_Autorun.bat";
 ЗаписьТекста           = Новый ЗаписьТекста(ПутьКСкриптуДобавления, КодировкаТекста.OEM);  
 Если ВключитьОтладку Тогда         
   ЗаписьТекста.ЗаписатьСтроку(СтрокаКоманды + Символы.ПС);
   ЗаписьТекста.ЗаписатьСтроку("pause");          
 Иначе         
   ЗаписьТекста.ЗаписатьСтроку(СтрокаКоманды);         
 КонецЕсли;      
 ЗаписьТекста.Закрыть();
 Оповещение = Новый ОписаниеОповещения("IDDQD", ЭтотОбъект);
 НачатьЗапускПриложения(Оповещение,ПутьКСкриптуДобавления);
      
КонецПроцедуры
  
&НаКлиенте
Процедура IDDQD(Первый, Второй)  Экспорт    
КонецПроцедуры


   
Цитата
Поделиться: