1
我終於有我的代碼修復噸蟲子後的工作,但我還是得到了一些小問題命令提示符數據亂碼
Dim myprocess As New System.Diagnostics.Process
myprocess.StartInfo.FileName = "cmd.exe"
myprocess.StartInfo.UseShellExecute = False
myprocess.StartInfo.RedirectStandardOutput = True
myprocess.StartInfo.RedirectStandardInput = True
myprocess.StartInfo.WorkingDirectory = "C:\"
myprocess.StartInfo.CreateNoWindow = True
myprocess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
myprocess.Start()
myprocess.StandardInput.WriteLine(prompt.Text)
myprocess.StandardInput.Flush()
myprocess.StandardInput.Close()
prompt.Text = ""
prompt.Text = myprocess.StandardOutput.ReadToEnd
myprocess.StandardOutput.Dispose()
myprocess.StandardOutput.Close()
myprocess.WaitForExit()
myprocess.Close()
的問題是,如果我執行命令,如「樹」,它無法解釋組成樹的線。執行「樹/ A」解決了這個問題,但我想知道爲什麼只是簡單的舊「TREE」沒有得到正確的解釋。另外,一旦我執行諸如「TREE」之類的命令,我將無法輸入我的文本框,直到我使用我的清除功能。有趣的是,我能夠Backspace但不能輸入。
將此代碼粘貼到VB.NET並添加一個文本框和按鈕。你會明白我的意思。
- 爲什麼文本會變成亂碼?
- 爲什麼我無法鍵入我的文本框?
有趣的是,我該如何指定「代碼頁437」。可能嗎?你知道vb.net的例子嗎? –
而不是從'myprocess.StandardOutput'讀取,我會嘗試類似於Dim輸出爲新的StreamReader(myprocess.StandardOutput.BaseStream,New System.Text.Encoding(437))'並從中讀取。 – prprcupofcoffee
可以在聲明爲'MustInherit'的類上使用新的'New'。這是我得到的錯誤。你確定你可以指定437嗎?我以爲你只能從VB.NET的列表中選擇,如UTF8,Big Endian ... –