Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 10295|回复: 5

[已解决]vba如何关闭指定的windows窗口

[复制链接]
发表于 2015-12-11 14:13 | 显示全部楼层 |阅读模式
Windows("a.txt - 记事本").Close

报下标越界
最佳答案
2015-12-11 16:09
tr2et.gif


Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)

Sub test()
    Dim hwnd As Long
    hwnd = FindWindow(vbNullString, "无标题 - 记事本")
   If hwnd Then SendMessage hwnd, 2, 0, 0
End Sub





到处乱找了一翻,试了好多下 ............ 可以关闭,但我不懂

评分

参与人数 1 +1 收起 理由
chenlifeng + 1 很给力

查看全部评分

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-12-11 15:55 | 显示全部楼层
只会用简单的办法,,先获取到程序id,然后激活它,再用 alt + f4 关闭

下面的代码,用F5记事本会一闪而过

  1. Sub cc()
  2. Dim myappid
  3. myappid = Shell("C:\WINDOWS\system32\notepad.exe", 1)
  4.   AppActivate myappid
  5.   SendKeys "%{F4}", True
  6. End Sub
复制代码
要不然就得用api函数,,那代码就太长了。。。
回复

使用道具 举报

发表于 2015-12-11 16:09 | 显示全部楼层    本楼为最佳答案   
tr2et.gif


Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)

Sub test()
    Dim hwnd As Long
    hwnd = FindWindow(vbNullString, "无标题 - 记事本")
   If hwnd Then SendMessage hwnd, 2, 0, 0
End Sub





到处乱找了一翻,试了好多下 ............ 可以关闭,但我不懂

回复

使用道具 举报

 楼主| 发表于 2015-12-11 17:44 | 显示全部楼层
爱疯 发表于 2015-12-11 16:09
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByV ...

谢谢  
这2句话 应该是
查找 标题为“xxx”窗体的句柄号
关闭句柄号为 hwnd 的窗体

回复

使用道具 举报

发表于 2015-12-11 18:03 | 显示全部楼层
我几乎不大用api,只是来了解,学习{:021:}
回复

使用道具 举报

 楼主| 发表于 2015-12-11 18:10 | 显示全部楼层
我也是学习一下 ,一般用不到。,这个以前在什么地方看到过,就一时没有想到用句柄,你提醒了我
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 19:38 , Processed in 0.650212 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表