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

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

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
VB.NET自动更新程序可以帮助我们在软件发布之后,通过自动下载和安装更新来保持软件的最新版本和功能。以下是一个简单的VB.NET自动更新程序的实现步骤: 1. 获取当前软件的版本号:使用VB.NET中的特定函数或方法,我们可以获取当前软件的版本号。 2. 检测更新:连接到服务器,检测是否有可用更新。可以通过访问一个特定的URL或从服务器获取一个更新文件来检查是否有新版本可用。 3. 下载更新:如果有可用的更新,使用VB.NET中的下载功能,从服务器上下载更新文件。 4. 检查下载文件的完整性和校验:使用哈希算法(如MD5或SHA)来检查下载的文件的完整性和校验。比较下载文件的哈希值与服务器上的哈希值是否匹配,以确保文件没有被更改或损坏。 5. 安装更新:解压下载的更新文件,并将更新文件应用到软件的相应位置。这可以通过调用外部执行文件或通过VB.NET编写的代码实现。 6. 重启应用程序:在更新完成后,可能需要重新启动应用程序以使更新生效。 7. 定期检查更新:可以在应用程序启动时或定期检查更新,以确保用户一直使用最新版本的软件。 需要注意的是,VB.NET自动更新程序需要与服务器端进行交互,并且需要在发布新版本时更新服务器上的更新文件。此外,程序应该具有异常处理机制,以处理网络连接失败、下载文件损坏等情况。最后,还需要考虑用户隐私和安全性,确保更新过程中不会泄露敏感信息或遭受恶意软件攻击。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值