我在visual basic中做了一个小程序。它压缩文件并将文件上传到 ftp 服务器上。该程序本身运行良好。
我的问题是,如果它从命令行获取参数,我希望它具有不同的行为。如果给定参数,则不显示任何表单,如果没有,则加载表单。
从 Visual Basic 执行时,获取命令行参数的代码工作正常(项目属性 -> 调试 -> 启动选项 -> 命令行参数设置为文件路径)
但是当我使用这一行从 cmd 执行程序时: pogram.exe C:\Users\user\file.txt
表单出现,没有检测到任何参数。
这是调度的主要内容。
模块1.vb:
Module Module1
Declare Function AttachConsole Lib "kernel32" (ByVal dwProcessId As Int32) As Boolean
Declare Function FreeConsole Lib "kernel32.dll" () As Boolean
Sub Main()
Dim cmdArgs As String() = GetCommandLineArgs()
Form2.loadData()
If cmdArgs.Length = 0 Then ' NO ARGS MODE
mainWindow.commandLineMode = False
Application.Run(mainWindow)
ElseIf cmdArgs.Length < 3 And Form2.TXTnumLicence.Text = "" Then ' BAD ARGS NUMBER
Console.WriteLine("Aucun numero de licence definit. Usage : ./ODG_exchange ['filePath'] [numeroLicence [default = ./ODG_param.xml > numero_licence]]")
Application.Exit()
Else ' ARGS MODE
mainWindow.commandLineMode = True
mainWindow.commandeLine(cmdArgs)
End If
End Sub
在 Visual Studio 中,我还将启动对象定义为 Module1。也许它会有用。