Visual Basic で少しプログラムを作成しました。ファイルを圧縮し、ftp サーバーにファイルをアップロードします。プログラム自体はうまく機能します。
私の問題は、コマンドラインから引数を受け取るかどうかにかかわらず、別の動作をさせたいということです。引数が指定されている場合はフォームが表示されず、指定されていない場合はフォームが読み込まれます。
コマンド ライン引数を取得するコードは、Visual Basic から実行すると正常に動作します (プロジェクト プロパティ -> デバッグ -> 開始オプション -> コマンド ライン引数がファイル パスで設定されます)。
しかし、この行で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 として定義しました。多分それは役に立つでしょう。