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

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.ClickDim pInfo As New ProcessStartInfo()'设置其成员FileName为系统资料的Eula.txtpInfo.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.ClickDim hWnd As IntegerDim ProcID As Integer' 通过shell函数运行一个新实例ProcID = Shell("CALC.EXE", AppWinStyle.NormalFocus)'hWnd = FindWindow(vbNullString, "计算器")If hWnd ThenMessageBox.Show("找到计算器")ElseMessageBox.Show("没找到计算器")End IfEnd 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.ClickDim info As System.Diagnostics.ProcessStartInfoinfo = New System.Diagnostics.ProcessStartInfo()info.WorkingDirectory = "D:\调用程序"Dim example As String = "main.exe"info.FileName = exampleinfo.Arguments = ""Dim proc As System.Diagnostics.Process = New Processproc.StartInfo.UseShellExecute = Falseproc.StartInfo.CreateNoWindow = FalseTryproc = System.Diagnostics.Process.Start(info)proc.WaitForExit()ListBox1.Items.Add("2")Catch ex As System.ComponentModel.Win32ExceptionMsgBox(ex.Message, MsgBoxStyle.Information, vbOKOnly)ReturnEnd TryEnd 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.ClickShellExecute(0, vbNullString, "D:\Keil_v5\Uninstall.exe", vbNullString, vbNullString, 1)End Sub

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

VB.NET外部程序调用总结下相关推荐

  1. .net core 调用c dll_Qt编写DLL给外部程序调用,提供VC/C#/C调用示例(含事件)

    一.前言 最近这阵子,接了个私活,封装一个开发包俗称的SDK给客户调用,查阅了很多人家的SDK,绝大部分用VC编写,而且VC6.0居多,估计也是为了兼容大量的XP用户及IE浏览器,XP自带了VC6.0 ...

  2. VB得到指定文件夹下的文件列表

    代码如下: Function GetFileList(ByVal Path As String, ByRef FileName() As String, Optional fExp As String ...

  3. qt编译c语言dll,QT编写DLL给外部程序调用,提供VC/C#/C调用示例(含事件)

    最近这阵子,接了个私活,封装一个开发包俗称的SDK给客户调用,查阅了不少人家的SDK,绝大部分用VC编写,并且VC6.0居多,估计也是为了兼容大量的XP用户及IE浏览器,XP自带了VC6.0运行库,因 ...

  4. 外部程序调用Activity的几种方法总结

    1. 组件导出 activity 组件导出可以使用外部程序调用我们的Activity 组件的属性是 android:exported 属性的值 = "true" Activity ...

  5. 快播3在线安装程序变身快播下载器 vb 源代码以及调用方法

    快播3在线安装程序变身快播下载器 vb 源代码以及调用方法 2010年09月30日 软件的界面我已经做出来了,界面简单美观,双击软件的空白界面可以打开qvod资源网站,直接在那个网站批量复制批量粘贴到 ...

  6. 外部程序调用四五打印乱码

    外部程序调用显示出的内容乱码: 程序使用的为gb2312编码再base64编码,用utf8转base64则为乱码 0,优速快递,1,单位名称,单位简称,开户银行,帐号,国家,省份,地市,区镇,联系地址 ...

  7. bootstrap获取下拉框数据_bootstrap动态调用select下拉框的实现方法

    bootstrap动态调用select下拉框的实例代码 html代码: 填报部门: JS代码: /*获取下拉菜单*/ function showSel(){ $.ajax({ "type&q ...

  8. C#,VB.Net,VB6调用Codesoft打印标签

    做工控软件不免要打印标签,打印方式很多:打印图片方式,命令方式-- 最简单的要数Codesoft了 Codesoft可以编辑要要打印的标签,需要改变的文字或条码,二维码置为变量,打印时将参数传入即可 ...

  9. 解决前端调用WEB-INF下jsp无法访问的问题

    **解决前端调用WEB-INF下jsp无法访问的问题**当我们使用SpringMVC框架开发项目时,可能会遇到在前端页面调用WEB-INF目录下jsp页面的情况.由于访问权限或者说安全问题,我们无法直 ...

  10. vb外部调用autocad_Java基于VB通过Jacob调用AutoCAD接口

    Java 以跨平台深受大家喜欢,而由于它跨平台的目的,需要运行在java虚拟机上工作,使得它和本地机器各种内部联系变得很少,约束了它直接掉本地API的功能.本例采用VB代码生成调用AutoCAD接口的 ...

最新文章

  1. VIM7.3添加中文帮助文档
  2. C语言中的const,volatile与restrict的使用
  3. 使用Grunt搭建自动化的web前端开发环境-完整教程
  4. linux man使用方法 和centos安装中文man包 --转
  5. 专业计算机能力考试 技巧,全国专业技术人员计算机应用能力考试应试技巧
  6. base6 python 字节_Python使用base64模块进行二进制数据编码详解
  7. linux为mysql创建gpower_系统运维|RHEL/CentOS 7中安装并配置 PowerDNS 和 PowerAdmin
  8. 简单的matlab阶乘计算
  9. animation中CrossFade的问题
  10. 设置用户计算机的ip地址,电脑动态IP地址怎么设置
  11. 阿里云服务器价格表,学会利用价格计算器查询阿里云服务器购买价格
  12. 数据结构-二分查找(含全部代码)
  13. Ionic4 Ionic-refresher 下拉更新
  14. python爬取html中文乱码
  15. 如何使用idea把自己的项目打包jar包发给别人使用
  16. 最简单的基于FFMPEG+SDL的音频播放器
  17. 少年宫计算机兴趣小组活动教案,少年宫象棋兴趣小组活动教案全册段跃华.docx...
  18. 《疯狂Java讲义》读书笔记2
  19. 学习记录-视觉SLAM十四讲第2版(二)
  20. 微信小程序图片自适应高度问题

热门文章

  1. GAT1400---视图库标准
  2. ubuntu20.4安装gcc5.4
  3. Node.js下载及安装步骤
  4. C语言实现学生成绩管理系统
  5. HTML5七夕情人节表白网页制作【一生守护】HTML+CSS+JavaScript
  6. python 爬取直播_python 斗鱼直播间爬取代码
  7. 如何解决Alreader不自动滚动
  8. win10开始菜单添加磁贴_IT之家学院:Win10 自定义开始菜单磁贴背景颜色及图标...
  9. java与spss交互_典型相关分析及其适用范围和spss操作(转)
  10. 基于STM32F427的模拟SSI协议绝对式编码器位置反馈通信