Re[8]: вызвать net форму из vba
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 06.12.21 07:09
Оценка:
Здравствуйте, vaa, Вы писали:

vaa>Здравствуйте, Serginio1, Вы писали:


S>>ProgId нужен для позднего связывания.

vaa>и обязательно
vaa>
vaa>regsvr32 dotnet-com-library.dll
vaa>

Ну это для Core https://docs.microsoft.com/en-us/dotnet/core/native-interop/expose-components-to-com
Ну и без ProgId tlb то все равно нужно регистрировать
Для .Net Framework regasm.exe из 2 х каталогов

public string GetSysPath(string ИмяПеременной)
        {
            string path = System.Environment.GetEnvironmentVariable(ИмяПеременной);
            //  path = System.Environment.GetEnvironmentVariable("%" + ИмяПеременной + "%");
            if (!path.EndsWith("\\")) path += "\\";
            return path;
        }

  string Каталог20 = @"Microsoft.NET\Framework{0}\v2.0.50727\";
   string Каталог45=@"Microsoft.NET\Framework{0}\v4.0.30319\";

  var Приложение = GetSysPath("Windir");
            var Приложение32 = Приложение +string.Format(Каталог,"")+ "regasm.exe";
            var Приложение64 = Приложение + string.Format(Каталог,"64")+"regasm.exe";

           var КоманднаяСтрока = @"""" + filename + @""" " + @"/codebase";

                if (System.IO.File.Exists(Приложение32))
                {
                    ЗапуститьПриложение(Приложение32, КоманднаяСтрока);
                    textBox1.Text = Приложение32 + " " + КоманднаяСтрока;
                }
                if (System.IO.File.Exists(Приложение64))
                {
                    ЗапуститьПриложение(Приложение64, КоманднаяСтрока);
                    textBox2.Text = Приложение64 + " " + КоманднаяСтрока;
                }
и солнце б утром не вставало, когда бы не было меня
Отредактировано 06.12.2021 7:50 Serginio1 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.