С# эквивалент GetObject VB6

Следующий код VB6 подключается к некоторому стороннему программному обеспечению и принудительно входит в систему с именем пользователя и паролем администратора:

Set obj = GetObject(, "workspace.application")
obj.System.FixLogin strAdminUsername, strAdminPassword

Я хочу выполнить ту же задачу на С#, но как очень молодой разработчик С# (около 3 месяцев опыта) я понятия не имею, как это сделать. Я провел очень разочаровывающий день в Google, но не нашел ничего, что отвечало бы всем требованиям (большую часть этого я даже не мог понять). Я знаю о VB6 еще меньше, чем о C#, но VB6 делает это таким простым.

Также я не могу протестировать подключение к этому стороннему программному обеспечению, пока не внедрим его в нашу среду контроля качества. Поэтому я хотел бы проверить функциональность с помощью простого приложения, например, Блокнота. Какую функцию/метод я могу вызвать в Блокноте вместо «FixLogin»?

Буду очень признателен, если кто-нибудь поможет мне с этой проблемой.

С уважением, Стив.


person user455176    schedule 22.09.2010    source источник
comment
Microsoft.VisualBasic.Interaction.GetObject со ссылкой на Microsoft.VisualBasic. dll   -  person Slai    schedule 27.11.2019


Ответы (3)


Даже если вы работаете с C#, вы можете использовать все классы и методы, предоставляемые Vb.Net, включая GetObject.

Просто добавьте ссылку на компонент .NET "Microsoft.VisualBasic".

После добавления ссылки вы можете вызывать Microsoft.VisualBasic.Interaction.CreateObject() или Microsoft.VisualBasic.Interaction.GetObject().

person Andrea Parodi    schedule 22.09.2010
comment
+1, способ сделать это. CreateObject() выполняет довольно нетривиальную работу. - person Hans Passant; 22.09.2010

Marshal.GetActiveObject Метод

person Viacheslav Ivanov    schedule 19.01.2011
comment
Желание GetObject состоит в том, чтобы получить экземпляр объекта в памяти, если он существует; что делает это решение. Если он возвращает null, вы можете использовать new для создания экземпляра. Это лучшее решение вопроса, потому что оно обрабатывает все аспекты поведения. - person Jay Imerman; 11.10.2012

GetObject возвращает элемент управления COM. Вам придется работать с COM Interop сделать это на С#. (Это не тривиально.)

person David Pfeffer    schedule 22.09.2010