Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Monkeykiller_vb en 2 Octubre 2019, 06:20 am



Título: Retornar Aplicación vb6 por línea de comandos
Publicado por: Monkeykiller_vb en 2 Octubre 2019, 06:20 am
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. :)


Título: Re: Retornar Aplicación vb6 por línea de comandos
Publicado por: EdePC en 2 Octubre 2019, 17:26 pm
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
  1. Sub Main()
  2.    Dim FSO As New Scripting.FileSystemObject
  3.    Dim sin As Scripting.TextStream
  4.    Dim sout As Scripting.TextStream
  5.    Set sin = FSO.GetStandardStream(StdIn)
  6.    Set sout = FSO.GetStandardStream(StdOut)
  7.  
  8.    Dim tmp As String
  9.    Dim args As String
  10.    args = Command()
  11.  
  12.    sout.WriteLine ("Hola " & args)
  13.  
  14.    sout.WriteLine ("Presione una tecla para continuar")
  15.    tmp = sin.ReadLine()
  16.  
  17.    Set sout = Nothing
  18.    Set sin = Nothing
  19. End Sub

Citar
C:\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



Título: Re: Retornar Aplicación vb6 por línea de comandos
Publicado por: Eleкtro en 15 Octubre 2019, 11:44 am
- 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...

  • https://docs.microsoft.com/en-us/dotnet/api/system.environment.commandline?view=netframework-4.8
  • https://docs.microsoft.com/en-us/dotnet/api/system.environment.getcommandlineargs?view=netframework-4.8

Saludos.