2

Mirosoft Visual Basic 2008 Express Edition で MS-DOS プログラムを作成できますか? コマンドプロンプト、DOSBOX、または使用されているものから飛び出すウィンドウがないものを作りたかったのです。メッセージ ボックスを作成しようとしましたが、MS-DOS のようにはなりません。VB についてはよくわかりませんが、すべてを DOSBOX に残す必要があります。CLI にとどまらないテンプレートは次のとおりです。

Imports System.Windows.Forms

    Public Class Dialog1

    Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As        System.EventArgs) Handles OK_Button.Click
        Me.DialogResult = System.Windows.Forms.DialogResult.OK
        Me.Close()
    End Sub

    Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
        Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
        Me.Close()
    End Sub

    Private Sub Dialog1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub
End Class

テンプレート、またはある種のコードを入手できれば、本当にありがたいです。

4

5 に答える 5

2

過去 15 年間 (またはそれ以上...) に作成された Microsoft コンパイラは、16 ビット システム (DOS とは) をターゲットにしません。DOS 用にコンパイルされた最後の VB バージョンは VB 1.0 でしたが、それが見つかったのは幸運です。

C++ ルートを下ることを気にしない場合は、DJGPP を調べることができます。DOS 用にコンパイルできる Pascal およびアセンブラー コンパイラもあります。

あなたの道を自由に考え直してください:)

于 2011-06-20T16:31:11.273 に答える
1

Windows XP/Vista/7 を実行している最新のコンピュータ (つまり、DOS コマンド プロンプトのように見える文字が入ったブラック ボックス) のコンソール ウィンドウを意味しているのか、それとも実際の DOS、つまり MS-DOS 5.22 を実行しているコンピュータなどを意味しているのでしょうか?

前者 (コンソール ウィンドウ) を意味する場合は、コンソール アプリケーションとして Visual Basic でプロジェクトを作成するだけです。コードの最初の行は、ダイアログやウィンドウなどを作成するように設計された Windows フォーム アプリケーションであることを示唆しています。

Google/Youtube で「ビジュアル ベーシック コンソール アプリケーション」を探してください。順調に進んでいるはずです。

于 2011-06-20T20:34:52.207 に答える
1

コンソール ウィンドウ内にとどまる VB.Net アプリケーションを作成できます。

必要なのはMessageBox、コンソール ウィンドウ内にとどまらない関数 ( など) を呼び出さないことだけです。

他のすべての .Net アプリケーションと同様に、実行するには Windows と正しいバージョンの .Net Framework が必要です。

于 2011-06-20T16:30:46.967 に答える
-1

このために、3 つのテキストボックスを追加します

1) txterror (コマンド プロンプトまたは DOS からエラーを取得)

2) txtresult (コマンド プロンプトまたは DOS から結果を取得)

3) txtcommand (実行する DOS コマンドを書き込みます)

フォームロード内に以下のコードを記述します

' Set start information.
    Dim start_info As New ProcessStartInfo("cmd")
    start_info.UseShellExecute = False
    start_info.CreateNoWindow = True
    start_info.RedirectStandardOutput = True
    start_info.RedirectStandardError = True
    start_info.RedirectStandardInput = True

    ' Make the process and set its start information.
    Dim proc As New Process()
    proc.StartInfo = start_info

    ' Start the process.
    proc.Start()

    ' Attach to stdout and stderr.
    Dim std_out As StreamReader = proc.StandardOutput()
    Dim SW As System.IO.StreamWriter = proc.StandardInput
    Dim std_err As StreamReader = proc.StandardError()
    SW.WriteLine(txtcommand.Text)
    SW.WriteLine("exit")
    ' Display the results.
    txtresult.Text = std_out.ReadToEnd()

    ' Clean up.
    std_out.Close()
    std_err.Close()
    proc.Close()

テキストボックスのキーダウン イベント内に以下のコードを記述します (つまり、txtcommand_KeyDown)。

If e.KeyCode = Keys.Enter Then
        txterror.Text = ""
        ' Set start information.
        Dim start_info As New ProcessStartInfo("cmd")
        start_info.UseShellExecute = False
        start_info.CreateNoWindow = True
        start_info.RedirectStandardOutput = True
        start_info.RedirectStandardError = True
        start_info.RedirectStandardInput = True

        ' Make the process and set its start information.
        Dim proc As New Process()
        proc.StartInfo = start_info

        ' Start the process.
        proc.Start()

        ' Attach to stdout and stderr.
        Dim std_out As StreamReader = proc.StandardOutput
        Dim SW As System.IO.StreamWriter = proc.StandardInput
        Dim std_err As StreamReader = proc.StandardError()
        SW.WriteLine(txtcommand.Text)
        SW.WriteLine("exit")

        ' Display the results.
        txtresult.Text = std_out.ReadToEnd()
        txterror.Text = std_err.ReadToEnd()

        std_err.Dispose()
        SW.Close()
        ' Clean up.
        std_out.Close()
        std_err.Close()
        proc.Close()
    End If
于 2012-10-08T11:37:29.013 に答える