Я кодировал приложение, которое должно быть расширением уже существующей программы.Тем не менее, указанная программа не допускает какие-либо методы для загрузки расширений / плагинов, или как вы их называете.По этой причине я размышлял над несколькими возможностями, среди которых внедрение C ++ DLL и сумасшествие с ним, но меня больше интересует выполнение всего этого в управляемом C #.
И целевая программа, и моя собственная программа написаны на C # и, следовательно, управляются.Теперь я точно знаю, что если я установлю ссылку на целевую программу в своем собственном проекте, я смогу «получить доступ» к ее свойствам, полям и т. Д. В редакторе Visual Studio, но я никак не смогу получить «реальную»"значения из тех, поскольку я не могу запустить целевую программу во время чтения ее членов, а это значит, что я не могу получить из нее никаких данных" реального мира ".
Моя идея заключается в следующем: если бы я должен был создать модуль запуска, который вставляет DLL (C ++, но это будет единственная часть C ++) в целевой процесс, который устанавливает AppDomain, помещает хост-процесс в этот AppDomain, а затем продолжает загружать мойзапрограммировать в тот же процесс и AppDomain, смогу ли я получить доступ к значениям целевой программы в режиме реального времени?
Я знаю, что это длинный путь, и на самом деле тестирование заняло бы дни, если не неделикодирования.Вот почему я спрашиваю здесь;и, возможно, это слишком необычно и надумано, но я думаю, что на самом деле есть шанс, что это сработает.Теоретически.
Итак, немного упростил: Внедрить DLL в целевой процесс -> Создать AppDomain -> Поместить хост-процесс в AppDomain -> Загрузить MyProgram.exe в Process и AppDomain -> Доступ к целевому процессу 'методы и свойства