Создание COM объекта из запущенного приложения

Здравствуйте Уважаемые!

есть установленная(на сервер) лицензионная программа 1с83 ключ на 5 лицензий подключение и запуск программы на других компах происходит по ссылке.

есть необходимость по работе с этой 1с через COM

но как COM объект данная 1С зарегистрирована только на сервере

Теперь собственно вопрос:

возможно ли на языке c++ или C# получить доступ к запущенному приложению как COM объекту.

на C# нашел кусочек кода но он не работает

public static uint GetProcessID() {
    return (uint)Process.GetProcessesByName("1C Предприятие (8.3.16.1063)")[0].Id;
}
[DllImport("kernel32.dll")]
public static extern IntPtr OpenProcess(UInt32 dwDesiredAccess, Int32 bInheritHandle, UInt32 dwProcessId);
private static Type GetTypeFromHandle2(IntPtr handle) {
     unsafe {

          var method = typeof(Type).GetMethod("GetTypeFromHandleUnsafe",
          BindingFlags.Static | BindingFlags.NonPublic);
          //вылетает здесь
          return (Type)method.Invoke(null, new object[]{handle});
            }
}
public void MyFunc(){
     //указатель получаем без проблем
     IntPtr process_handle = OpenProcess(0x001F0FFF, 0, GetProcessID());
     var v83comConnector  = Type.GetTypeFromHandle2(process_handle);
}

''' пытался на c++ реализовать. загвоздка в CLSID можно ли его выковырять из запущенного приложения.

Возможно на c++ можно сделать обертку в виде COM объекта и в эту обертку затащить запущенную программу.

Помогите пожалуйста разобраться в данном вопросе.


Ответы (0 шт):