关闭程序的VB代码

关闭程序的VB代码,第1张

Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As SystemWindowsFormsFormClosingEventArgs) Handles MeFormClosing

End

End Sub'点击X号退出的代码

Private Sub Button1_Click(ByVal sender As SystemObject, ByVal e As SystemEventArgs) Handles Button1Click

End

End Sub'点击Button1推出的代码

1首行看他的标题是什么

2把标题加到以下的程序代码,即可

Option

Explicit

Private

Declare

Function

PostMessage

Lib

"User32"

Alias

"PostMessageA"

(ByVal

hwnd

As

Long,

ByVal

wMsg

As

Long,

ByVal

wParam

As

Long,

ByVal

lParam

As

Long)

As

Long

'发送消息,用来关闭指定程序

Private

Declare

Function

FindWindow

Lib

"User32"

Alias

"FindWindowA"

(ByVal

lpClassName

As

String,

ByVal

lpWindowName

As

String)

As

Long

'查找窗体

Private

Const

WM_CLOSE

=

&H10

'关闭程序

Private

Sub

Command1_Click()

Dim

winHwnd

As

Long

Dim

RetVal

As

Long

winHwnd

=

FindWindow(vbNullString,

"这里是你要关闭的程序的标题")

'找到窗口

DebugPrint

winHwnd

'用来调试

在立即窗口中输入winhnd

If

winHwnd

<>

0

Then

'这里是判断窗口是否启动

如果窗口不存在那么值为0

RetVal

=

PostMessage(winHwnd,

WM_CLOSE,

0&,

0&)

'关闭窗口

If

RetVal

=

0

Then

'如果窗口没有启动

就d出下面的信息

MsgBox

"错误!"

Else

MsgBox

"成功关闭程序!"

End

If

Else

MsgBox

"程序没有打开!"

End

If

End

Sub

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

以下代码放在一个标准模块中,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&

对于windows应用程序来说,

一般都是调用Winodws API函数TerminateProcess()来杀进程,

相关的有进程快照、寻找进程、结束进程、处理进程托盘图标等。

细节可以去百度,网上有不少。

只例举TerminateProcess()函数的vb声明,其它自己去百度吧。

Private Declare Function TerminateProcess Lib "Kernel32" (ByVal ApphProcess As Long, ByVal uExitCode As Long) As Long

以上就是关于关闭程序的VB代码全部的内容,包括:关闭程序的VB代码、怎样用VB关闭一个指定的进程、VB 中如何实现关闭其他程序打开的窗口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存