VB里怎么设置完全关闭程序 15
我编了个VB小程序,里面能播放音乐,但是点了右上角的×关不掉音乐。再运行的话会打开两个音乐。怎么处理让关了程序音乐就停...
我编了个VB小程序,里面能播放音乐,但是点了右上角的×关不掉音乐。再运行的话会打开两个音乐。怎么处理让关了程序音乐就停
展开
展开全部
可以使用API函数FindWindow和PostMessage来寻找一个窗口并且关闭它。下面的范例演示如何关闭一个标题为"Calculator"的窗口。
'下面的代码放到模块中
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 'FindWindowAPI函数
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long 'PostMessageAPI函数
Public Const WM_CLOSE = &H10 '常用变量定义
'程序代码
Dim winHwnd As Long '定义一个长整形变量winHwnd
Dim RetVal As Long '定义一个长整形变量RetVal
winHwnd = FindWindow(vbNullString, "Calculator") 'API函数查找"Calculator"这个窗口
Debug.Print winHwnd '显示这个窗口句柄
If winHwnd <> 0 Then '如不为0,表示找到窗口
RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&) '向这个窗口发送关闭信息
If RetVal = 0 Then '如果返回信息为0.表示失败,未发送成功
MsgBox "Error posting message." '提示发送失败
End If
Else
MsgBox "The Calculator is not open." '提示没有找到打开的程序
End If
'下面的代码放到模块中
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 'FindWindowAPI函数
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long 'PostMessageAPI函数
Public Const WM_CLOSE = &H10 '常用变量定义
'程序代码
Dim winHwnd As Long '定义一个长整形变量winHwnd
Dim RetVal As Long '定义一个长整形变量RetVal
winHwnd = FindWindow(vbNullString, "Calculator") 'API函数查找"Calculator"这个窗口
Debug.Print winHwnd '显示这个窗口句柄
If winHwnd <> 0 Then '如不为0,表示找到窗口
RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&) '向这个窗口发送关闭信息
If RetVal = 0 Then '如果返回信息为0.表示失败,未发送成功
MsgBox "Error posting message." '提示发送失败
End If
Else
MsgBox "The Calculator is not open." '提示没有找到打开的程序
End If
展开全部
在窗体的Unload过程中,加人End命令:
Private Sub Form_Unload(Cancel As Integer)
'做好退出前的收尾工作
……
End
End Sub
Private Sub Form_Unload(Cancel As Integer)
'做好退出前的收尾工作
……
End
End Sub
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
'是不是有隐藏的窗体没有卸载,试试这短代码
Private Sub Form_Unload(Cancel As Integer)
'主窗体卸载,所有窗体都卸载
Dim aaa As Form
For Each aaa In Forms
Unload aaa
Next
End Sub
Private Sub Form_Unload(Cancel As Integer)
'主窗体卸载,所有窗体都卸载
Dim aaa As Form
For Each aaa In Forms
Unload aaa
Next
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-01-17
展开全部
你该不会是使用win32的API来播放声音吧? 那就在退出的时候 调用一次停止播放的API
或者看看API有没有参数是设置同步播放(即退出后自动关闭的)
或者看看API有没有参数是设置同步播放(即退出后自动关闭的)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把你那个音乐播放器Dispose掉。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询