1

私が達成しようとしているのは、フォームにテキストボックスコントロールとボタンコントロールがあります。テキスト ボックス コントロールに入力されたものをクリックすると、そのデータがコンソール アプリケーションに送信され、テキスト ファイルが作成されます。ほとんど動作していますが、Web アプリケーションから送信されたデータを取得できません。どうすればこれを達成できますか? これが私がこれまでに持っているものです。

コンソールアプリケーションに送信するサブは次のとおりです。

    Public Sub send_to_console()

    Dim file As String = "C:\inetpub\wwwroot\TestConsoleApp\TestConsoleApp\bin\Debug\TestConsoleApp.exe"
    Dim info As ProcessStartInfo = New ProcessStartInfo(file, TextBox1.Text)

    Dim p As Process = Process.Start(info)

    End Sub

コンソール アプリ コード:

 ublic Sub Main(ByVal args As String)

    Dim w As StreamWriter
    Dim filepath As String = "C:\xml_files\testFile.txt"

    Dim new_string As String
    new_string = "This has been completed on " & Date.Now

    If args = "" Then
        new_string = "No data entered on: " & Date.Now
    Else
        new_string = args & " " & Date.Now
    End If

    If System.IO.File.Exists(filepath) Then
        File.Delete(filepath)
    End If

    w = File.CreateText(filepath)

    w.WriteLine(new_string)
    w.Flush()
    w.Close()

End Sub

現在、エラーが発生しています:アクセス可能なメインがありません

'########################編集###########

  Dim file As String = "C:\inetpub\wwwroot\TestConsoleApp\TestConsoleApp\bin\Debug\TestConsoleApp.exe"
    Dim info As ProcessStartInfo = New ProcessStartInfo(file, TextBox1.Text)
    info.UseShellExecute = False

    Dim p As Process = Process.Start(info)
4

1 に答える 1

0

main は、文字列ではなく文字列の配列を取ります。

それで

Public Sub Main(ByVal args As String())
    .....

    If args.length < 1 Then
        new_string = "No data entered on: " & Date.Now
    Else
        new_string = args(0) & " " & Date.Now
    End If
    .....
End Sub

ウィンドウが引数を分割しないようにするには、前後に引用符を連結します

Dim info As ProcessStartInfo = New ProcessStartInfo(file, """" & TextBox1.Text & """")

4 つの二重引用符文字は、1 つの二重引用符を含む文字列リテラルを表します。

于 2013-06-18T17:40:37.683 に答える