.Net启动外部程序

6 篇文章 0 订阅

在Win32应用程序中使用API的ShellExecute方法来启动外部应用程序;在VB可以使用Shell函数;在.Net,则使用Process类来启动外部应用程序,如果是VB.net,还可以使用Shell函数。

 

一、使用Process类启动外部应用程序

 

     Process proc = New Process();
     proc.StartInfo.FileName = exePath;
     proc.StartInfo.Arguments = args;
     proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
     proc.Start();

 

     1. 创建一个Process对象。

     2. 为Process对象设置StartInfo对象的相关属性,如FileName--应用程序的文件路径、Arguments--执行应用程序所需要的参数等。

     3. 调用Process对象的Start()方法启动外部应用程序,并返回被启动的程序的进程ID。

     4. 若要等待外部程序执行完成才把控制权返回到当前程序,可以在proc.Start()之后调用Process的WaitForExit()方法,如proc.WaitForExit(2000),这里的2000是超时时长;

 

二、VB.net使用Shell函数启动外部应用程序

 

      Public Shared Function Shell ( PathName As String, Style As AppWinStyle, Wait As Boolean, Timeout As Integer) As Integer

      参数

      PathName
      类型: System.String
      必需。String.要执行的程序的名称,以及所有必需的参数和命令行开关。PathName 也可以包含驱动器和目录路径或文件夹。
      如果不知道程序的路径,则可以使用 GetFiles 进行定位。例如,可以调用 My.Computer.FileSystem.GetFiles("C:/", True,          "testFile.txt"),这将返回驱动器 C:/ 上所有目录中每个名为 testFile.txt 的文件的完整路径。

       Style
      类型: Microsoft.VisualBasic.AppWinStyle
      可选。AppWinStyle.AppWinStyle 中选择的一个值,该值指定将要在其中运行程序的窗口的样式。如果省略 StyleShell 将使用 AppWinStyle.MinimizedFocus 以最小化方式启动该程序并获得焦点。

       Wait
      类型: System.Boolean
      可选。Boolean.一个指示 Shell 函数是否应等待程序完成的值。如果省略 Wait,则 Shell 将使用 False

       Timeout
      类型: System.Int32
      可选。Integer.如果 WaitTrue,则为等待完成的毫秒数。如果省略 Timeout,则 Shell 使用 -1,表示没有超时设置并且 Shell 到程序结束时才返回。因此,如果省略 Timeout 或将其设置为 -1,则 Shell 可能永远不会将控制返回给您的程序。
 
       返回值
       类型: System.Int32
       运行一个可执行程序,并且如果该程序仍在运行则返回一个包含该程序的进程 ID 的整数。

     

 

      如: Shell(exePath & " " & args, AppWinStyle.Hide, True, 10000)  

      注:

            Shell 函数的返回值取决于 PathName 中指定的程序在 Shell 返回时是否仍在执行。如果将 Wait 设置为 True,并且程序在到达超时时间之前完成,则 Shell 返回零。如果超时过期或者省略 Wait 或将它设置为 False,则 Shell 返回程序的进程 ID。

            如果 Shell 函数无法启动指定程序,则出现 FileNotFoundException 错误。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值