怎么让vb调用一个外部程序(A.exe),A.exe关闭后自动再执行另一条命令

怎么让vb调用一个外部程序(A.exe),A.exe关闭后自动再执行另一条命令,第1张

private function checkexeisrun(byval exename as string) as boolean

dim ps

'枚举进程

For Each ps In GetObject("winmgmts:\\\root\cimv2:win32_process")instances_ 

'循环进程

If ucase(psname) = ucase(exename) then 

 checkexeisrunning = True  

 exit function

 end If

 next

 end function

private sub command1_click()

shell "Aexe" '调用Aexe

timer1enabled=true '启动计时器

end sub

private sub timer1_timer()

if checkexeisrun("aexe")=false then '"aexe"就是程序名

'你要执行的命令

end if

end sub

'计时器interval属性越小响应时间就越快,但不要调太小,否则可能会无响应。

根据标题文本找到窗体句柄,然后发送关闭消息

以下代码放在一个标准模块中,enumwindows可以枚举窗口列表中的所有父窗口(顶级和被所有窗口),getwindowtext可以获得窗口标题,sendmessage发送WM_CLOSE消息到你要关闭的窗体就可以了

Declare

Function

EnumWindows

Lib

"user32"

(ByVal

lpEnumFunc

As

Long,

ByVal

lParam

As

Long)

As

Boolean

Declare

Function

GetWindowText

Lib

"user32"

Alias

"GetWindowTextA"

(ByVal

hwnd

As

Long,

ByVal

lpString

As

String,

ByVal

cch

As

Long)

As

Long

Declare

Function

GetWindowTextLength

Lib

"user32"

Alias

"GetWindowTextLengthA"

(ByVal

hwnd

As

Long)

As

Long

Declare

Function

SendMessage

Lib

"user32"

Alias

"SendMessageA"

(ByVal

hwnd

As

Long,

ByVal

wMsg

As

Long,

ByVal

wParam

As

Long,

lParam

As

Any)

As

Long

Public

Const

WM_CLOSE

=

&H10

'这个函数是enumwindows回调用的,在这里加入处理代码就行

Public

Function

EnumWindowsProc(ByVal

hwnd

As

Long,

ByVal

lParam

As

Long)

As

Boolean

Dim

sSave

As

String,

Ret

As

Long

Ret

=

GetWindowTextLength(hwnd)

sSave

=

Space(Ret)

GetWindowText

hwnd,

sSave,

Ret

+

1

Form1Print

Str

$(hwnd)

+

"

"

+

sSave

'这行代码在窗体上显示所有窗口句柄和标题,把这行代码换成在标题中查找要限制的文本,如果找到就向这个窗口SendMessage

hwnd,

WM_CLOSE,

0,

0就可以了

EnumWindowsProc

=

True

End

Function

以下为窗体模块中调用的代码,放在时间事件中,例如每4秒中检查一次窗口标题中是否包含限制文本

EnumWindows

AddressOf

EnumWindowsProc,

ByVal

0&

以上就是关于怎么让vb调用一个外部程序(A.exe),A.exe关闭后自动再执行另一条命令全部的内容,包括:怎么让vb调用一个外部程序(A.exe),A.exe关闭后自动再执行另一条命令、VB 中如何实现关闭其他程序打开的窗口、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9693304.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存