2008-11-13 25 views
6

Hice algunas búsquedas en Google para intentar responder a esta pregunta, pero incluso después de eso no estoy del todo claro sobre algo. ¿Es posible crear una aplicación de consola desde VB6?¿Cómo construyo una aplicación de consola VB6?

Tengo una aplicación VB6 que no levanta una ventana. Siempre asumí que era una aplicación de consola. Sin embargo, quiero poder usar la función SetConsoleCtrlHandler de la API de Windows desde allí. Creo que con las aplicaciones C++/MFC debes establecer un interruptor de enlace para crear una aplicación de consola. Y uno de mis compañeros desarrolladores me dijo que VB6 no crea una verdadera aplicación de consola y que, por lo tanto, esto no funcionaría. Entonces, ¿es posible crear una aplicación de consola que Windows reconozca como una aplicación de consola de VB6?

Plataforma: Windows XP SP2

plataforma de desarrollo: Visual Basic 6

Respuesta

8

Sí. También es posible crear aplicaciones totalmente sin cabeza (lo que he hecho algunas veces en el pasado). This link da un ejemplo con un fragmento de código.

+0

@NXC, gracias, eso es justo lo que ordenó el médico. –

+0

Un buen enlace, pero no pude ejecutarlo (incluso utilizando el método Scripting.FileSystemObject) sin llamar primero a la API de Windows AllocConsole y después a FreeConsole. Tal vez esto solo sea un problema con algunas versiones de Windows. Vea aquí para más detalles: http://internettrash.com/users/fdb/cons.htm. – Gavin

+0

@Gavin - Podría ser un problema con las versiones más nuevas de Windows. IIRC la última vez que escribí una aplicación VB6 sin cabeza fue hace unos 10 años y la plataforma objetivo fue NT4. – ConcernedOfTunbridgeWells

1

Consulte este article.

O podría reescribir la aplicación VB6 como un programa VBScript.

+0

Gracias Patrick, eso es útil. –

3

Puede usar el código de Karl E. Peterson en http://vb.mvps.org/samples/project.asp?id=Console para crear una aplicación de consola con todas las funciones.

Se pueden hacer los más simples volviendo a vincular el EXE VB6 compilado para el subsistema de la consola. Karl entra en esto en esa misma página web. Desplácese hacia abajo para LinkConsole.vbs allí.

+0

Sí, creo que así fue como lo hice en mi tiempo: realmente debes decirle al .exe que es una aplicación de consola, eso debe hacerse en un paso posterior a la compilación (¿tu amigo es make?). –

+0

A partir del 31 de marzo, el código de Karl Peterson también está disponible envuelto en un complemento gratuito llamado vbAdvance (con muchas otras funciones potentes). http://vb.mvps.org/tools/vbAdvance/ – MarkJ

+0

Karl hizo un gran trabajo, como siempre. Sin embargo, esa es una gran porción de manteca (sobrecarga) para hacer la mayoría de los programas de consola. Pocas veces necesita la mayor parte de lo que le suministró. La buena noticia es que tiene la fuente para que pueda recortarla según sea necesario. – Bob

Cuestiones relacionadas