【问题标题】:Create a console in VB (like minecraft console)在 VB 中创建控制台(如我的世界控制台)
【发布时间】:2014-08-21 13:33:24
【问题描述】:

我需要在我的应用程序中创建一个控制台..... 我试过了:

Public Class Form1
<DllImport("user32.dll")> Shared Function SetParent(ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As IntPtr
End Function

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim p As Process = Process.Start("java -jar C:\Server\Minecraft\Server.jar")
    Threading.Thread.Sleep(500)
    SetParent(p.MainWindowHandle, Panel1.Handle)

End Sub

但我只有不好的结果

请帮帮我

【问题讨论】:

  • 表单在控制台应用程序中的作用是什么?为什么是 javascript 标签? bad result 是什么意思?
  • 你好,我需要创建一个控制台,这个控制台必须打印一个 javascript 的结果但是我做不到

标签: vb.net console


【解决方案1】:

您可以使用Process 类来启动命令提示符 (cmd.exe)。然后您可以使用标准输入和标准输出与它进行通信。

首先在表单级别声明一个Process类型的变量:

Private WithEvents MyProcess As Process

并初始化它。启动 cmd.exe。

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    MyProcess = New Process
    With MyProcess.StartInfo
        .FileName = "CMD.EXE"
        .UseShellExecute = False
        .CreateNoWindow = True
        .RedirectStandardInput = True
        .RedirectStandardOutput = True
        .RedirectStandardError = True
    End With
    MyProcess.Start()
    MyProcess.BeginErrorReadLine()
    MyProcess.BeginOutputReadLine()
End Sub

然后您可以使用 Process 类的 StandardInput 对象向其发送输入,并使用 OutputDataReceived 事件发送输入并从中获取输出。

Private Sub MyProcess_OutputDataReceived(ByVal sender As Object, ByVal e As System.Diagnostics.DataReceivedEventArgs) Handles MyProcess.OutputDataReceived
    MessageBox.Show(e.Data)
End Sub

Private Sub ExecuteCommand()
    MyProcess.StandardInput.WriteLine("whatever command you want to send goes here...")
    MyProcess.StandardInput.Flush()
End Sub

这篇博文展示了如何在表单中构建类似 DOS 的应用程序。

http://pradeep1210.wordpress.com/2010/02/04/launching-and-controlling-external-applications-from-vb-net-application/

我希望这正是您正在寻找的。​​p>

【讨论】:

  • 我不确定 Gianfranco 的意思。我认为他使用“控制台”这个词来表示与 DOS 提示符略有不同的东西。像 Minecraft 这样的一些游戏的功能看起来非常类似于 DOS 控制台,可以打开基于文本的控制台并输入命令(开发人员用来测试游戏和玩家作弊)。它与 DOS 提示符不太一样,尽管真正的 DOS 控制台可能对 Gianfranco 一样有用(他实际上并没有告诉我们他需要它做什么)。
  • 编辑帖子并提供详细解释
  • 您好...我显示此错误:VM 初始化期间发生错误错误:错误:无法创建 Java 虚拟机。无法为对象堆保留足够的空间错误:错误:发生了致命异常。程序将退出。
  • Pradeep Kumar 可以与 java 交互吗?发送命令 ecc...?
  • 任何从Standard Input 读取并将输出写入Standard Output 的程序都应该可以工作。我不确定特别是 Java,但您可能想尝试一下。只需将代码中的CMD.EXE 替换为适当的程序文件名即可。更多关于标准流的信息可以在这里找到:en.wikipedia.org/wiki/Standard_streams
猜你喜欢
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多