VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > VB.net教程 >
  • 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_v5\Uninstall.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_v5\Uninstall.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_v5\Uninstall.exe", vbNullString, vbNullString, 1)
    End Sub
 
以上就是调用外部程序总结的方法,如果有说的不对地方,请评论区指出,灰常感谢,
————————————————
版权声明:本文为CSDN博主「小菜鸡121381」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45357668/article/details/106440090

相关教程