欢迎来到天天文库
浏览记录
ID:34783929
大小:57.13 KB
页数:3页
时间:2019-03-10
《用vb轻松调用其他程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、用VB轻松调用其他程序 我们编写程序时,有时会遇到在一个程序中调用并控制另一个程序执行的情况,在一些编程语言中实现起来较为繁琐,但如果用VB编写时,则可轻松实现。下面我就以在程序中调用“计算器”为例,总结了以下几种方法: 一、以异步方式来执行其他程序 Shell函数是以异步方式来调用其他程序的。也就是说,用Shell启动的程序可能还没有完成执行过程,就已经执行到Shell函数之后的语句。 语法:Shell(pathname[,windowstyle]) 说明:pathname:必要参数。Variant(String),要执行的程序名,以及
2、任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。 例如:RetVal=Shell(″C:WINDOWSCALC.EXE″,1)′调用计算器。 二、以同步方式来执行其他程序 有时候,我们需要让VB在执行完外部程序后再执行下一语句,这就需要使用API函数。 我们可通过OpenProcess和CloseHandle函数来检测调用软件的运行情况。这两个函数的声明如下: DeclareFunctionOpenProcessLib″kernel32″Alias″OpenProcess″(ByValdwDesiredAccessAs
3、Long,ByValbInheritHandleAsLong,ByValdwProcessIdAsLong)AsLong DeclareFunctionCloseHandleLib″kernel32″Alias″CloseHandle″(ByValhObjectAsLong)AsLong 建立下面函数,用以判断程序是否在运行,如果是,则在运行时返回True。 FunctionIsRunning(ByValProgramID)AsBoolean ′传入进程标识ID DimhProgramAsLong ′被检测的程序进程句柄 hP
4、rogram=OpenProcess(0,False,ProgramID) IfNothProgram=0Then IsRunning=True Else IsRunning=False EndIf CloseHandlehProgram EndFunction 例如要调用计算器(CALC.EXE)并等到它运行完成后再执行下一语句,可以使用以下代码: DimRetVal MsgBox″开始运行″ RetVal=Shell(″C:WINDOWSCALC.EXE″,1) WhileIsRunning(
5、RetVal) DoEvents Wend MsgBox″结束运行″ 三、关闭正在运行中的其他软件 如果要在程序中关闭正在运行中的其他程序,可以先使用FindWindow函数找出相应的程序句柄,然后调用PostMessage函数关闭该程序即可。 这两个函数的声明如下: DeclareFunctionFindWindowLib″user32″Alias″FindWindowA″(ByVallpClassNameAsString,ByVallpWindowNameAsString)AsLong DeclareFunctionPost
6、MessageLib″user32″Alias″PostMessageA″(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,ByVallParamAsLong)AsLong 例如要检测“计算器”程序是否正在运行,如果是则关闭它,可以使用如下代码来实现: DimwinHwndAsLong DimRetValAsLong winHwnd=FindWindow(vbNullString,″计算器″) IfwinHwnd〈〉0Then RetVal=PostMessage(winHwnd,
7、&H10,0&,0&) IfRetVal=0Then MsgBox″关闭计算器出错!″ EndIf Else MsgBox″计算器程序没有运行。″ EndIf
此文档下载收益归作者所有