2

我在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。也许它会有用。

4

2 回答 2

0

总有一个命令行 arg - 正在执行的程序的文件名。您需要将 if 语句更改为 cmdArgs.length = 1

于 2013-03-21T21:08:25.330 回答
0

那么7天后我找到了解决方案......只需使用好的.exe,它就可以像在Visual Studio中一样工作......

感觉好笨,多谢帮助

于 2013-03-28T14:40:49.500 回答