手机站
网通分站
电信主站
产品服务快速通道
----------------
==产品价格总览==
==是否备案查询==
==域名注册==
英文域名注册
中文域名注册
域名抢注
域名转入
DNS管理
==网站推广==
==虚拟主机==
----------------
双线路虚拟主机
基本型虚拟主机
商用型虚拟主机
论坛型虚拟主机
功能型虚拟主机
ECSHOP网店型虚拟主机
Vip合租虚拟主机
数据库
应用服务
虚拟主机性能对比
选择理由
虚拟主机免费试用
网站备案
机房速度测试
----------------
==租用托管==
服务器租用
主机托管
增值服务
----------------
==企业邮局==
购买企业邮局
----------------
==付款方式==
----------------
==联系我们==
有问必答
常见问题
购物车
续租服务
在线提问
常见问题
付款方式
购买流程
忘记密码?
密 码:
用户名:
首 页
域名注册
虚拟主机
智能建站主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
首页
IDC资讯
网站运营
网站联盟
行业资讯
网络编程
服务器技术
软件技巧
网页制作
程序设计
网络知识
操作系统
当前位置 :
主页
>
网络编程
>
Asp.Net编程
>列表
VB.NET启动并监测外部程序
来源:
互联网
作者:
西部数码
时间:
2008-04-09
西部数码-全国
虚拟主机
10强!40余项虚拟主机管理功能,全国领先!双线多线
虚拟主机
南北访问畅通无阻!免费赠送
企业邮局
,.CN域名,
自助建站
480元起,免费试用7天,满意再付款! P4
主机租用
799元/月.月付免压金!
你再也不需要使用Win32应用编程接口或者VB的Shell函数来启动外部应用程序了。因为你可以使用.NET框架中的System.Diagnostics.Process类来进行这个操作,从而进一步简化代码。
图1:你可以添加一个Process组件到一个窗体中,让你在设计期间设置属性而不是在运行期间设置属性。
监视启动过程
到目前为止,你看到的启动过程还是使用一种异步的方式;就象传统VB Shell函数一样。换句话说,在启动这个过程之后,父程序中的代码才能继续执行。你需要一些监视被启动的过程的方法,并弄清楚它们什么时候退出或者是否仍在运行。根据你的应用程序的具体情况,你可能需要使用不同的方式来处理这个问题。
启动过程,停止你的程序直到它退出。
启动过程,监视它,并只有当它结束时才做某些事情,同时让你的程序正常地运行。
启动过程,给它一些输入,让它处理这些输入,然后强迫它退出。
启动过程,并且只要启动的过程正在运行或者运行期间没有出现问题,就执行某些操作。如果过程退出或者停止,你需要作出某些动作。
启动过程,并给它一些特殊的输入,并/或取得进一步处理产生的输出结果。例如,你可能想启动一个命令窗口,以编程方式在这个窗口中输入一些内容,然后取得并处理输出结果。
启动一个过程并等到它退出
等待一个启动的过程结束的最简单的方法时调用Process.WaitForExit方法。这导致正在启动的过程停止执行直到启动过的过程退出。然而不幸的是,当你直接从一个Windows窗体中使用这个方法的时候,它还能导致窗体停止对系统事件的响应,比如Paint。
所以一般来说你不会想从一个按钮中使用WaitForExit方法来启动一个外部程序(虽然使用WaitForExit方法非常适于从一个没有可视用户界面的应用程序中启动另一个过程,例如从一个ASP.NET应用程序服务器中调用控制台应用程序)。图二中所示的样本窗体有一个名为"Launch and WaitForExit"的按钮,让你在从一个窗体中使用这个方法时能看到会发生什么情况。
图2:样本窗体让你测试并试验各个的启动过程的方法。
Private Sub btnWaitForExit_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnWaitForExit.Click
'创建一个新过程
Dim myProcess As Process = _
System.Diagnostics.Process.Start("sample.txt")
' 等待直到它退出
myProcess.WaitForExit()
' 显示结果
MessageBox.Show("Notepad was closed at: " & _
myProcess.ExitTime & "." & _
System.Environment.NewLine & "Exit Code: " & _
myProcess.ExitCode)
myProcess.Close()
End Sub
前面的例子说明一个有趣的情况。即使启动的过程结束后,你仍然有访问代码中的Process对象的能力;然而这种情况下,大多数Process属性是不可用的,因为过程本身不再存在。你仍然可以读取ExitCode和ExitTime属性,这两个属性分别返回整数和日期时间型的值。DOS命令设置了一个退出码,让你知道是否出现错误。.NET和其他的Windows应用程序可以通过使用main方法的返回值设置这个值。默认情况下,这个值等于零。对于DOS命令,一个非零ExitCode值要么表明出现一个错误,要么表明命令过程被异常中止。
启动不可视的过程
在一个可见的窗口中,你不必启动一个过程;有时你仅仅想运行一个过程并取得输出值。下面的例子把当前的目录转换为系统目录,然后运行一个DOS的dir命令,这个命令带有"* .com"参数,列出目录中所有带有.com扩展名的文件。在Windows XP中,命令shell解释器把"&&"运算符认做一个命令分隔符,所以你可以在一行中放置多个命令。">>"运算符把输出值重定向到一个制定文件中。在这种情况下,代码把dia显示的结果导入Application.StartupPath属性指定的路径中的"dirOutput.txt"文件。
Dim myProcess As Process = New Process()
Dim s As String
Dim outfile As String = Application.StartupPath & _
"\dirOutput.txt"
'取得系统路径
Dim sysFolder As String = _
System.Environment.GetFolderPath _
(Environment.SpecialFolder.System)
'设置文件名和命令行参数
myProcess.StartInfo.FileName = "cmd.exe"
myProcess.StartInfo.Arguments = "/C cd " & _
sysFolder & " && dir *.com >> " & Chr(34) & _
outfile & Chr(34) & " && exit"
'在一个隐藏窗口中启动过程
myProcess.StartInfo.WindowStyle = _
ProcessWindowStyle.Hidden
myProcess.StartInfo.CreateNoWindow = True
myProcess.Start()
'如果过程在1秒中不能完成,那么销毁它
myProcess.WaitForExit(1000)
If Not myProcess.HasExited Then
myProcess.Kill()
End If
'显示退出时间和退出码
MessageBox.Show("The 'dir' command window was " & _]
文章整理:西部数码--专业提供
域名注册
、
虚拟主机
服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
上一页
1
2
3
下一页
[
打印
]
[
关闭
]
0
顶一下
相关文章
XML、DataSet、DataGrid结合写成
怎样在VB中控制Word
关于asp.net c#中对cookie的操作
asp.net 2.0中动态修改页面标题
.Net程序如何防止被注入(整站通
Asp.net Ajax 1.0 异步回调时,服
Asp.Net中文本换行
Windows操作平台下CGI的实现
ASPX页Web服务调用性能优化
ASP.NET基本编程习惯
上一篇:
Win Server2003使用VB.NET:新基准测试
下一篇:
VB.NET实现Windows进程管理器
热点关注
在asp.net中为Web用户控件
.NET3.5和VS2008中的ASP.N
对.NET Framework 反射的
Asp.net Ajax 1.0 异步回
ASP.NET2.0的控件状态和视
通过避免下列10个常见ASP.
中国地区三级联动下拉菜单
解析Asp.net中资源本地化
一个无刷新效果定时自动更
动态创建MSSQL数据库表存
asp.net用url重写URLReWri
使用ASP.NET Atlas编写显
关于ASP.NET调用JavaScrip
使用ASP.Net Forms模式实
asp.net ajax 使用updatep
优化ASP.NET应用程序性能
ASP.NET中动态修改web.con
ASP.NET中利用Crystal Rep
asp.net如何生成图片验证
基于ASP.NET的Web动态控件
分享个极好的无刷新二级联
asp.net 2.0 上传控件的使
创建ASP.NET监视服务器进
Asp.net把UTF-8编码转换为
开发基于ASP.NET WebServi
asp.net结合html,javascr
asp.net 2.0下嵌套masterp
正则表达式提取数字
最新版FreeTextBox(版本3.
获取本机上配置好的Oracle
ASP.Net全局变量的设置和
VB几个有用的函数
用代码画折线图/柱形图/
FCKeditor2.2 ASP.NET2.0
客户端回调实现gridView无
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营
建站经验
策划盈利
搜索优化
网站推广
免费资源
网站联盟
联盟新闻
联盟介绍
联盟点评
网赚技巧
行业资讯
业界动态
搜索引擎
网络游戏
门户动态
电子商务
广告传媒
网络编程
Asp.Net编程
Asp编程
Php编程
Xml编程
Access
Mssql
Mysql
其它
服务器技术
Web服务器
Ftp服务器
Mail服务器
Dns服务器
安全防护
软件技巧
其它软件
Word
Excel
Powerpoint
Ghost
Vista
QQ空间
QQ
FlashGet
迅雷
Internet Explorer
网页制作
FrontPages
Dreamweaver
Javascript
css
photoshop
fireworks
Flash
程序设计
Java技术
C/C++
VB
delphi
网络知识
网络协议
网络安全
网络管理
组网方案
Cisco技术
操作系统
Win2000
WinXP
Win2003
Mac OS
Linux
FreeBSD
返回首页
|
关于我们
|
联系我们
|
付款方式
|
创业联盟
|
价格总览
|
资讯中心
|
友情链接
|
网站地图
|
招贤纳士
|