栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

VB.NET外部程序调用总结下

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

VB.NET外部程序调用总结下

  上一节先介绍了电脑快捷键调用外部程序的方法,这节将会以实际代码总结调用外部程序过程。

1、首先运行软件,新建一个窗体应用程序,程序主界面如下图1所示。就一个listbox控件和5个button控件,每个控件内都有一个调用外部程序的方法,首先看button1控件里边的程序。

图1

  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        '创建一个新的进程结构()
        Dim str As String = "D:Keil_v5Uninstall.exe"
        Process.Start(str)
        ListBox1.Items.Add("1")
    End Sub

这个代码块里的内容比较简单,首先把要调用的exe程序路径找到,并赋值给一个字符串类型的变量,然后输入下一行代码即可。这样调用会出现一个问题,那就是在调用时,还没等调用程序运行完,VB主程序依然可以往下执行,运行结果如下图2。如果想等调用程序运行结束后再执行,VB主程序,请参考button3控件里的程序。

图2
2、button3里的程序代码如下所示。

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim pInfo As New ProcessStartInfo()
        '设置其成员FileName为系统资料的Eula.txt
        pInfo.FileName = "D:Keil_v5Uninstall.exe"
        '运行该文件
        Dim p As Process = Process.Start(pInfo)
        '等待程序装载完成()
        p.WaitForInputIdle()
        '等待进行程退出
        p.WaitForExit()
        '继续执行下面的代码
        MessageBox.Show("外部程序运行结束!")
    End Sub

里边代码大体意思为,先定义pInfo为ProcessStartInfo的类,然后把启动程序的路径赋值给pInfo.Filename,然后又定义了p为process的类,p的方法中调用pinfo,p.waitForExit(),该语句作用为,等外部程序运行结束时,在运行自己VB程序。
3、按钮2位用shell调用外部程序方法,自己用的不是很熟,就把上网找的相关例程展示出来了。

 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim hWnd As Integer
        Dim ProcID As Integer
        ' 通过shell函数运行一个新实例
        ProcID = Shell("CALC.EXE", AppWinStyle.NormalFocus)
        'hWnd = FindWindow(vbNullString, "计算器")
        If hWnd Then
            MessageBox.Show("找到计算器")
        Else
            MessageBox.Show("没找到计算器")
        End If

    End Sub

4、上一篇中讲过,如果直接调用外部可执行程序,有时候会出现调用不了的情况,出现Failed to execute script main的情况,该问题一般原因为,可执行程序需配合目标程序文件夹内的一些配置文件来运行,直接调用.exe程序,则出现调用不了。解决这种问题的方法,就如前一篇文章所说的,先转到目标程序的文件夹,在从文件夹里启动可执行程序。就可以解决上边问题。按钮4中的程序代码就是解决上述问题方法。

  Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim info As System.Diagnostics.ProcessStartInfo
        info = New System.Diagnostics.ProcessStartInfo()
        info.WorkingDirectory = "D:调用程序"
        Dim example As String = "main.exe"
        info.FileName = example
        info.Arguments = ""
        Dim proc As System.Diagnostics.Process = New Process
        proc.StartInfo.UseShellExecute = False
        proc.StartInfo.CreateNoWindow = False
        Try
            proc = System.Diagnostics.Process.Start(info)
            proc.WaitForExit()
            ListBox1.Items.Add("2")
        Catch ex As System.ComponentModel.Win32Exception
            MsgBox(ex.Message, MsgBoxStyle.Information, vbOKOnly)

            Return
        End Try

    End Sub

5.button5按钮里的程序调用,首先需要声明以下代码

  Private Declare Function ShellExecute Lib "shell32.dll " Alias "ShellExecuteA" ( _
                   ByVal hWnd As IntPtr, _
                   ByVal lpOperation As String, _
                   ByVal lpFile As String, _
                   ByVal lpParameters As String, _
                   ByVal lpDirectory As String, ByVal nShowCmd As Int32) As Long

然后按钮里代码为:

   Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        ShellExecute(0, vbNullString, "D:Keil_v5Uninstall.exe", vbNullString, vbNullString, 1)
    End Sub

以上就是调用外部程序总结的方法,如果有说的不对地方,请评论区指出,灰常感谢,

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/910185.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号