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. :)
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:
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
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...
- 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.