一个NT系统下的DOS命令运行程序
来源:互联网 发布:国外大学网络课程 编辑:程序博客网 时间:2024/06/05 07:53
LzmTW
注:程序在WINDOWS98还不能正常运行。
Public Class frmCmdExcute
Inherits System.Windows.Forms.Form
Dim sw As System.IO.StreamWriter
Dim sr As System.IO.StreamReader
Dim err As System.IO.StreamReader
Dim p As System.Diagnostics.Process = New System.Diagnostics.Process
Dim psI As New System.Diagnostics.ProcessStartInfo(System.Environment.GetEnvironmentVariable("ComSpec"))
#Region " Windows 窗体设计器生成的代码 "
Public Sub New()
MyBase.New()
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
'在 InitializeComponent() 调用之后添加任何初始化
End Sub
'窗体重写 dispose 以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意: 以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Friend WithEvents tbResult As System.Windows.Forms.TextBox
Friend WithEvents Panel1 As System.Windows.Forms.Panel
Friend WithEvents btnExcute As System.Windows.Forms.Button
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents btClear As System.Windows.Forms.Button
Friend WithEvents btLocate As System.Windows.Forms.Button
Friend WithEvents tbComText As System.Windows.Forms.ComboBox
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.tbResult = New System.Windows.Forms.TextBox
Me.Panel1 = New System.Windows.Forms.Panel
Me.tbComText = New System.Windows.Forms.ComboBox
Me.btLocate = New System.Windows.Forms.Button
Me.btClear = New System.Windows.Forms.Button
Me.Label1 = New System.Windows.Forms.Label
Me.btnExcute = New System.Windows.Forms.Button
Me.Panel1.SuspendLayout()
Me.SuspendLayout()
'
'tbResult
'
Me.tbResult.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.tbResult.BackColor = System.Drawing.SystemColors.Info
Me.tbResult.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.tbResult.Location = New System.Drawing.Point(8, 8)
Me.tbResult.Multiline = True
Me.tbResult.Name = "tbResult"
Me.tbResult.ReadOnly = True
Me.tbResult.ScrollBars = System.Windows.Forms.ScrollBars.Both
Me.tbResult.Size = New System.Drawing.Size(584, 304)
Me.tbResult.TabIndex = 0
Me.tbResult.TabStop = False
Me.tbResult.Text = ""
'
'Panel1
'
Me.Panel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.Panel1.Controls.Add(Me.tbComText)
Me.Panel1.Controls.Add(Me.btLocate)
Me.Panel1.Controls.Add(Me.btClear)
Me.Panel1.Controls.Add(Me.Label1)
Me.Panel1.Controls.Add(Me.btnExcute)
Me.Panel1.Location = New System.Drawing.Point(8, 320)
Me.Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(584, 40)
Me.Panel1.TabIndex = 1
'
'tbComText
'
Me.tbComText.Location = New System.Drawing.Point(264, 8)
Me.tbComText.Name = "tbComText"
Me.tbComText.Size = New System.Drawing.Size(224, 20)
Me.tbComText.TabIndex = 5
Me.tbComText.Text = "Dir"
'
'btLocate
'
Me.btLocate.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btLocate.Location = New System.Drawing.Point(96, 8)
Me.btLocate.Name = "btLocate"
Me.btLocate.Size = New System.Drawing.Size(80, 24)
Me.btLocate.TabIndex = 4
Me.btLocate.Text = "定位(&L)"
'
'btClear
'
Me.btClear.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btClear.Location = New System.Drawing.Point(8, 8)
Me.btClear.Name = "btClear"
Me.btClear.Size = New System.Drawing.Size(80, 24)
Me.btClear.TabIndex = 3
Me.btClear.Text = "清空(&C)"
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(208, 8)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(48, 16)
Me.Label1.TabIndex = 2
Me.Label1.Text = "命令:"
'
'btnExcute
'
Me.btnExcute.Enabled = False
Me.btnExcute.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnExcute.Location = New System.Drawing.Point(496, 8)
Me.btnExcute.Name = "btnExcute"
Me.btnExcute.Size = New System.Drawing.Size(80, 24)
Me.btnExcute.TabIndex = 1
Me.btnExcute.Text = "执行(&E)"
'
'frmCmdExcute
'
Me.AcceptButton = Me.btnExcute
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(600, 365)
Me.Controls.Add(Me.Panel1)
Me.Controls.Add(Me.tbResult)
Me.Name = "frmCmdExcute"
Me.Text = "Command Excute Result"
Me.Panel1.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub btClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btClear.Click
Me.tbResult.Text = String.Empty
End Sub
Private Sub btLocate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btLocate.Click
Dim bd As New FolderBrowserDialog
If bd.ShowDialog = DialogResult.OK Then
System.Environment.CurrentDirectory = bd.SelectedPath
End If
End Sub
Private Sub tbComText_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles tbComText.KeyUp
If e.KeyData = Keys.Enter Then
Dim cmd As String = Me.tbComText.Text.ToLower
If cmd.Equals(String.Empty) Then cmd = "Dir "
Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
sw.WriteLine(cmd)
Me.tbResult.Text = sr.ReadToEnd()
Me.tbResult.Text += err.ReadToEnd()
Me.Cursor = System.Windows.Forms.Cursors.Default
Dim Current As String = String.Empty
If cmd.StartsWith("cd/") Or cmd.StartsWith("cd ") Then
Current = cmd.Substring(3)
End If
If cmd.EndsWith(":") Then
Current = cmd
End If
If Not Current.Equals(String.Empty) Then
If IO.Directory.Exists(Current) Then
System.Environment.CurrentDirectory = Current
End If
End If
Me.tbComText.Items.Add(Me.tbComText.Text)
Me.tbComText.SelectionStart = 0
Me.tbComText.SelectionLength = Me.tbComText.Text.Length
Me.tbComText.Focus()
End If
End Sub
Private Sub btnExcute_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcute.Click
Me.CmdExcute()
Dim cmd As String = Me.tbComText.Text.ToLower
If cmd.Length = 0 Then Exit Sub
Dim Current As String = String.Empty
If cmd.StartsWith("cd/") Or cmd.StartsWith("cd ") Then
Current = cmd.Substring(3)
End If
If cmd.EndsWith(":") Then
Current = cmd
End If
If Not Current.Equals(String.Empty) Then
If IO.Directory.Exists(Current) Then
System.Environment.CurrentDirectory = Current
End If
End If
Me.tbComText.Items.Add(Me.tbComText.Text)
Me.tbComText.SelectionStart = 0
Me.tbComText.SelectionLength = Me.tbComText.Text.Length
Me.tbComText.Focus()
End Sub
Private Sub CmdExcute()
Dim sw As System.IO.StreamWriter
Dim sr As System.IO.StreamReader
Dim err As System.IO.StreamReader
Dim p As System.Diagnostics.Process = New System.Diagnostics.Process
Dim psI As New System.Diagnostics.ProcessStartInfo(System.Environment.GetEnvironmentVariable("ComSpec"))
psI.UseShellExecute = False
psI.RedirectStandardInput = True
psI.RedirectStandardOutput = True
psI.RedirectStandardError = True
psI.CreateNoWindow = True
p.StartInfo = psI
Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
p.Start()
sw = p.StandardInput
sr = p.StandardOutput
err = p.StandardError
sw.AutoFlush = True
If Me.tbComText.Text <> "" Then
sw.WriteLine(Me.tbComText.Text)
Else
sw.WriteLine("Dir ")
End If
sw.Close()
Me.tbResult.Text = sr.ReadToEnd()
Me.tbResult.Text += err.ReadToEnd()
Me.Cursor = System.Windows.Forms.Cursors.Default
End Sub
Public Shared Sub
If System.Environment.OSVersion.ToString.IndexOf("NT") = -1 Then
MsgBox("暂时不支持非NT系统,程序退出!")
Application.Exit()
Else
Application.Run(New frmCmdExcute)
End If
End Sub
Private Sub frmCmdExcute_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
With psI
.UseShellExecute = False
.RedirectStandardInput = True
.RedirectStandardOutput = True
.RedirectStandardError = True
.CreateNoWindow = True
End With
p.StartInfo = psI
p.Start()
With p
sw = .StandardInput
sr = .StandardOutput
err = .StandardError
End With
sw.AutoFlush = True
End Sub
Private Sub frmCmdExcute_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
p.Close()
sw.Close()
sr.Close()
err.Close()
End Sub
End Class
- 一个NT系统下的DOS命令运行程序
- 程序中运行dos命令
- dos命令运行java程序
- DOS下运行python程序
- Dos下命令运行带有包名的Java类
- dos下用java命令运行含包名的main方法
- 用Shell来运行dos下的ping命令
- 在纯DOS下运行Win32程序的扩展器
- Dos下运行VC++ console程序的环境设置
- Dos下运行VC++ console程序的环境设置
- 原来可以再DOS下运行程序的。
- dos下链接mysql数据库提示“'mysql' 不是内部或外部命令,也不是可运行的程序”解决方法
- dos下的命令
- 常用的DOS运行命令
- C#运行程序或dos命令
- 在win7下,dos命令下,新建第一个Django程序,并用pycharm调试运行
- Window下的dos环境下编译运行下运行c程序
- 在Linux环境下运行DOS命令
- 领域驱动的开发
- .NET 的 Lucene
- 在Tomcat下JSP、Servlet,JavaBean和Struts环境的配置
- pageContext的认识
- 利用css里expression来实现界面对象的批量控制
- 一个NT系统下的DOS命令运行程序
- 本地DTO,怪也不怪
- 触发器
- [原创]用Mock Object进行独立单元测试(Testing in isolation with mock objects)
- 好高兴 今天借到两本经典书籍 :)
- 电子邮件的判断
- tomcat的几个使用技巧
- 读君主论有感
- 可爱的 Python:Python 中的函数编程