none
Llamada de vb.net a un .exe hecho en vb6 RRS feed

  • Pregunta

  • Buenas:

    Tengo la siguiente pregunta: Necesito llamar desde una aplicación hecha en vb.net a un archivo .exe que está hecho en vb6. Necesito llamar a esa aplicación desde mi programa. Se que es posible hacerlo son shell pero por lo que tengo entendido sólo puedo pasarle parámetros, pero estre eseos parámetros ¿es posible pasarle un documento xml? ¿es decir, se podrían pasar ficheros entre esos parámetros?

    Muchas gracias de antemano,
    martes, 27 de abril de 2010 16:05

Respuestas

Todas las respuestas

  • hola

    Podrias suar la clase Process

    Process Class

    ProcessStartInfo Class

    en este ejemplo

    como ejecuto comandos del cmd

    se muestra como usar argumentos

    ¿es posible pasarle un documento xml? ¿es decir, se podrían pasar ficheros entre esos parámetros?

    podrias pasarle el path al archivo xml, y que vb6 tome esta ruta y realice la apertura del archivo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 27 de abril de 2010 16:13
  • Gracias Leandro,

     

     

    El ejemplo que me has pasado me es imposible abrirlo para poder verlo, me lo puedes volver a pasar?

     

     

    martes, 27 de abril de 2010 17:18
  • hola

    si no se porque sucede a veces que al poenr un link del foro este no ingresa

    si lo copias y pegas al link seguro funciona, igualmente te lo dejo como directo:

    http://social.msdn.microsoft.com/Forums/es-ES/vbes/thread/bf7ffe77-1720-418f-8b54-e6b3174000a0

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 27 de abril de 2010 17:23
  • gracias! una última cosa... mi aplicación a la que quiero llamar (hecha en vb6) es una windows form. Tendré algun problema al hacer lo que tu me dices?

     

    Gracias de nuevo Leandro,

    miércoles, 28 de abril de 2010 13:01

  • si la vas a llamardesde tu aplicacion winforms, no deberias tener problemas

    si la vas a llmara desde un servicio de windows desarrollado en .net, ahi puede ser que se presente algun problema para que la aplicacion vb6 interactue con el desktop, pero imagino que no estas desarrollando un servicio

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 28 de abril de 2010 13:23
  • Son las dos winforms, tanto mi aplicación (la que hace la llamada) como la aplicación a la que llamo. Te pregunto esto porque preveo problemas, ya que la aplicación a la que llamo no tiene un main si no que es un form que hace un grupo de acciones al clickar en un boton. Pero yo al hacer la llamada no puedo pulsar ese boton, se debería pulsar automáticamente. O por lo menos que haga automáticamente lo que hay detrás de ese evento.
    miércoles, 28 de abril de 2010 16:22
  • upa si eso es todo un tema, necesitas interactuar con la interfaz de otro proceso

    el que no tenga Mains e puede solucionar, ya que puedes agregarle uno si lo necesitas

    al final de este articulo explico como poder agregarle uno

    Winforms, realizar tareas antes de inicializa

    por ahi peudes agregarle un argumento en el main para que si se lo apsas ejecute el codigo de ese boton

     

    lo que si sera complejo es la interaccion, ya que necesitaras usar una tecnica que se denomina Hook, o Hookear

    Using Hooks from C#

    Managing Low-Level Keyboard Hooks in VB .NET

    A Simple C# Global Low Level Keyboard Hook

     

    Processing Global Mouse and Keyboard Hooks in C#

    hay links variados, pero como veras estas trabajando e nivel de proceso, y se que no es nada simple

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 28 de abril de 2010 17:44
  • Gracias Leandro, creo que con lo que estas explicaciones estoy avanzando. Te comentaré.
    domingo, 2 de mayo de 2010 14:02
  • Leandro, te escribo para decirte que he conseguido utilizar la herramienta que me dijistes y todo ha ido perfecto. Te lo agradezco mucho.

     

    Tambien aprovecho a comentarte lo siguiente. He utilizado la clase proccess como tu me dijistes y ahora he abierto un proceso, y he comunicado la aplicación en vb.net con un ejecutable hecho en vb. Hasta ahí perfecto. Le paso un archivo y lo lee perfectamente. Pero ahora me gustaría que entre las dos aplicaciones se pudieran intercambiar mensajes para poder saber si la ejecución del .exe hecho en vb6 funciona correctamente. ¿sabes si es posible ese intercambio de mensajes de alguna forma?

     

    Muchas Gracias por todo.

    miércoles, 5 de mayo de 2010 17:16