我在visual basic中做了一个小程序。 它压缩文件并在ftp服务器上上传文件。该程序本身运作良好。
我的问题是,如果从命令行获取参数,我希望它有不同的行为。如果给出了参数,则不会显示任何表单,如果没有,则表示已加载。
从visual basic执行时,获取命令行参数的代码工作正常(项目属性 - > debug - >启动选项 - >命令行参数使用文件路径设置)
但是当我使用此行从cmd执行程序时: pogram.exe C:\ Users \ user \ file.txt
表单显示,未检测到任何参数。
这是派遣的主要内容 Module1.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。也许它会有用。
答案 0 :(得分:0)
总有一个命令行arg - 执行程序的文件名。 您需要将if语句更改为cmdArgs.length = 1
答案 1 :(得分:0)
7天后,我找到了解决方案......只需使用好的.exe,它就像在视觉工作室一样......
我感到非常愚蠢,谢谢你的帮助