Retornar Aplicación vb6 por línea de comandos

Iniciado por Monkeykiller_vb, 2 Octubre 2019, 06:20 AM

0 Miembros y 1 Visitante están viendo este tema.

Monkeykiller_vb

Hola! Quiero crear una aplicación que reciba argumentos a través de línea de comandos (Creo que con command()) y luego poder imprimir un mensaje a través de CMD. Se puede conseguir?

Gracias de antemano. :)
Atte.

EdePC

Saludos,

- De poder se puede, pero para CommandLine suele ir mejor Visual C++  :xD.

- Puedes revisar este artículo para ver como se hace: https://www.tek-tips.com/faqs.cfm?fid=5647

- Básicamente quitas tu formulario, insertas un módulo, haces la Referencia a Microsoft Scripting Runtime, creas tu Sub Main, en las Propiedades de tu proyecto especifícas que Sub Main es tu Objeto inicial, creas e inicializas tus variables para el FSO y los Stream para leer y escribir desde la consola, escribes tu código, puedes depurar y probar siempre y cuando no escribas nada en consola (aún no es de tipo consola), finalmente Generas el .exe y Re-Linkeas para convertir tu .exe en tipo aplicación de consola.

- Por lo pronto a mí me funciona perfectamente el siguiente Hola mundo:

Código (vb) [Seleccionar]

Sub Main()
    Dim FSO As New Scripting.FileSystemObject
    Dim sin As Scripting.TextStream
    Dim sout As Scripting.TextStream
    Set sin = FSO.GetStandardStream(StdIn)
    Set sout = FSO.GetStandardStream(StdOut)
   
    Dim tmp As String
    Dim args As String
    args = Command()
   
    sout.WriteLine ("Hola " & args)
   
    sout.WriteLine ("Presione una tecla para continuar")
    tmp = sin.ReadLine()
   
    Set sout = Nothing
    Set sin = Nothing
End Sub


CitarC:\Users\EdSon\Desktop>Link /Edit /SubSystem:Console Proyecto1.exe
Microsoft (R) COFF Binary File Editor Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

C:\Users\EdSon\Desktop>Proyecto1.exe mundo cruel!
Hola mundo cruel!
Presione una tecla para continuar


Eleкtro

#2
Cita de: EdePC en  2 Octubre 2019, 17:26 PM- De poder se puede, pero para CommandLine suele ir mejor Visual C++  :xD.

Quien dice VC++, puede decir también C# y VB.NET, siendo además este último la opción ideal para quien desee migrar de VB6 a un lenguaje semanticamente y sintacticamente similar, moderno y actual.

En la tecnología Windows Forms de .NET tan solo es necesario hacer uso de la propiedad System.Environment.CommandLine (o alternativamente la función System.Environment.GetCommandLineArgs) para recibir los commandos enviados por linea de comandos a la aplicación, en cualquier punto de la aplicación...


Saludos.