2010-09-22 16 views
9

El siguiente código de Visual Basic 6 se conecta a algún software de terceros y obliga a un inicio de sesión con el nombre de usuario y contraseña de administrador:C# equivalente de GetObject de VB6

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

que estoy queriendo hacer la misma tarea en C#, pero como muy desarrollador verde de C# (aproximadamente 3 meses de experiencia) No tengo idea de cómo hacer esto. Pasé un día muy frustrante en Google pero no encontré nada que satisfaga la factura (la mayor parte no pude entenderlo). Sé menos sobre VB6 que sobre C#, pero VB6 lo hace ver muy fácil.

Además, no puedo probar la conexión a este software de terceros hasta que implemente en nuestro entorno de control de calidad. Entonces me gustaría probar la funcionalidad con una aplicación simple, Notepad por ejemplo. ¿Qué función/método podría llamar en el Bloc de notas en lugar de "FixLogin"?

Estaría muy agradecido si alguien pudiera ayudarme con este problema.

Saludos cordiales, Steve.

Respuesta

0

GetObject devuelve un control COM. Tendría que trabajar con COM Interop para hacer esto en C#. (Esto no es trivial.)

16

Incluso si está trabajando con C#, puede usar todas las clases y métodos proporcionados por Vb.Net, incluido GetObject.

Solo agregue una referencia al componente .NET "Microsoft.VisualBasic".

Una vez que haya agregado la referencia, que son capaces de llamar Microsoft.VisualBasic.Interaction.CreateObject() o Microsoft.VisualBasic.Interaction.GetObject()

+0

+1, forma de hacerlo eso. CreateObject() hace un trabajo bastante no trivial. –

9
+0

El deseo de GetObject es obtener un objeto instanciado en la memoria si existe; que esta solución hace Si devuelve null, puede usar new para crear instancias. Esta es la mejor solución a la pregunta, ya que maneja todos los aspectos del comportamiento. –