Private Sub Command3_Click()
Dim a As Long
Dim b As Long
Dim c As Long
Dim d As Long
a = FindWindow("DFX_WINDOW", "DFX 7.5 Winamp")
SendMessage a, WM_CLOSE, 0, 0 ’发送关闭指令
b = FindWindow("#32770", "关闭") ‘这句是查找关闭窗体的句柄
c = FindWindowEx(b, 0, "Button", "确定") ‘关闭窗体时提示,弹出一关闭窗体,有“确认”和“取消”按钮
SendMessage c, WM_CLICK, 0, 0 ‘发送关闭指令
End Sub第一关闭主窗体,并关闭了提示窗体
第二次关闭主窗体,但没有关闭提示窗体,这是为啥了
Dim a As Long
Dim b As Long
Dim c As Long
Dim d As Long
dim i
a = FindWindow("DFX_WINDOW", "DFX 7.5 Winamp")
SendMessage a, WM_CLOSE, 0, 0 '发送关闭指令
b = FindWindow("#32770", "关闭") '这句是查找关闭窗体的句柄
for i=1 to b
c = FindWindowEx(b, 0, "Button", "确定") '关闭窗体时提示,弹出一关闭窗体,有“确认”和“取消”按钮
SendMessage c, WM_CLICK, 0, 0 '发送关闭指令
next i
End Sub其实不是很明白你想实现什么功能
如果你要关闭一个窗口的话,可以用getwindows找到窗口然后直接关闭他。。
如果要关闭程序的话,可以通过关闭进程来实现,先EnumWindowsProc遍历出进程,GetWindowThreadProcessId得到进程,最后关闭他。
我新建一个记事本,输入内容,然后直接点关闭按钮,他就会提示是否保存,我要实现的就是点关闭直接保存,即要实现
既要关闭记事本对话框,又要关闭提示保存的对话框你的WM_CLOSE是怎么定义的?
=======================Const WM_CLOSE = &H10
你不能保证对方收到 WM_CLOSE 就是马上出对话框,也许它需要停止当前播放的媒体、也许要检查一下上次保存的配置等等,这些都需要花时间的。
你要不保存的话,可以通过时钟来判断那个窗口有没有出现,出现了就 SendMessage 关闭窗口。。
但是你如果要保存的话,,你点了保存之后,还会出现保存对话框,你也可以继续添加时钟来判断保存对话框有没有出现,出现了就输入文件路径,然后 SendMessage 点保存。。保存后跳出时钟。。
但是这样就太麻烦了。。如果要保存成文件的话不是这样做的。我相信你也不会是用在记事本的保存上吧?