Как вы можете сделать программу MS-DOS в VB 8.0? - PullRequest
2 голосов
/ 20 июня 2011

Можете ли вы создать программу MS-DOS с помощью Mirosoft Visual Basic 2008 Express Edition?Я хотел сделать тот, у которого нет окон, которые появляются из командной строки, 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

Я был бы очень признателен, если бы я мог получить шаблон или просто какой-то код.

Ответы [ 5 ]

2 голосов
/ 20 июня 2011

Ни один компилятор Microsoft, созданный за последние 15 лет (или больше ...), не будет нацелен на 16-битную систему (то есть, что такое DOS). Последней версией VB, скомпилированной для DOS, была VB 1.0, но удачи в том, чтобы найти ее.

Вы можете заглянуть в DJGPP, если не возражаете пойти по маршруту C ++. Также есть компиляторы Pascal и ассемблер, которые могут компилироваться для DOS.

Не стесняйтесь переосмыслить свой путь:)

1 голос
/ 17 марта 2018

Я знаю, что это старый вопрос, и, возможно, к этому времени блок MS-DOS, о котором говорит OP, теперь находится в музее, но если вы выбираете язык Visual Basic, то я предлагаю вам попробовать PowerBasic доступен, коммерческий, может компилироваться в 16-битный код) или QBasic (который в любом случае уже доступен на вашем DOS-боксе.

В случае PowerBasic последние версии компилируются в 32-разрядные. Но я уверен, что вы можете попросить их о более старой версии. Плюс в том, что вы можете использовать одну кодовую базу для 16-битных и 32-битных. Я уже давно использовал его, но, если я правильно помню, он мог создать диалоговые окна для представления консоли (то есть не всплывающее окно, а внутри консоли MS-DOS).

В случае QBasic это довольно ограниченная среда, и она интерпретируется, хотя ее скомпилированный коммерческий компаньон QuickBasic теперь можно бесплатно загрузить с нескольких сайтов. Также кажется, что существуют новые версии, которые могут компилироваться в 32-битные и 64-битные, что означает, что вы можете сохранять (вроде) одну и ту же кодовую базу.

Я уверен, что есть другие варианты, но они могут быть самыми простыми, если у вас уже есть опыт работы с Visual Basic.

Кроме того, как уже отмечали другие, Windows Forms нельзя использовать или компилировать в 16-битную MS-DOS.

1 голос
/ 21 июня 2011

Вы имеете в виду окно консоли на современном компьютере под управлением Windows XP / Vista / 7 (т.е. черный ящик с символами, похожими на командную строку DOS) или фактическая DOS , т. Е. Компьютер под управлением MS- DOS 5,22 или что-то подобное?

Если вы имеете в виду первое - консольное окно - все, что вам нужно сделать, это создать свой проект в Visual Basic как консольное приложение . (Выберите сразу после того, как вы нажмете «Новый проект».) Первая строка в вашем коде предполагает, что это приложение Windows Forms, которое предназначено для создания диалогов и окон и тому подобного.

Поищите в Google / Youtube «консольное приложение Visual Basic», и все будет хорошо.

1 голос
/ 20 июня 2011

Вы можете создать приложение VB.Net, которое останется в окне консоли.

Все, что вам нужно сделать, это не вызывать какие-либо функции (например, MessageBox), которые не остаются в окне консоли.

Как и все другие приложения .Net, для запуска потребуется Windows и правильная версия .Net Framework.

0 голосов
/ 08 октября 2012

Для этого добавьте три текстовых поля

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()

Введите код ниже в событии keydown текстового поля (т.1013 *

...