vb怎么实现知道网址关闭网页
vb吧
全部回复
仅看楼主
level 1
asdfjksad 楼主
找不到网页的句柄,其他的窗口可以
2023年01月10日 05点01分 1
level 1
你是想用名字找句柄,然后网页的句柄关不掉吗?
2023年01月10日 06点01分 2
用名字找不到网页的句柄
2023年01月10日 06点01分
@asdfjksad 网页的后台名称和标题写的名称不一样,你用代码需要后台名称,所以你找不到。方法有两个,一种是用代码获取任务管理器的列表,那个列表里的名字可以获取句柄。还有一种是按钮抬起时,读取鼠标点坐标,用鼠标点坐标获取所指窗口句柄。程序我写过,不过没注释。代码我得找一会
2023年01月10日 06点01分
level 1
窗口按钮代码:
'按住按钮并拖动至窗口标题再松开,本窗口上显示松开时目标窗体的句柄与名称
Private Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim NowPOINT As POINTAPI '记录鼠标松开时所在位置
Dim TheHwnd As Long '目标窗体句柄
Dim TheName As String '目标窗体名称
GetCursorPos NowPOINT '获取鼠标位置
TheHwnd = WindowFromPoint(NowPOINT.X, NowPOINT.Y) '获取鼠标位置所指窗口句柄
Cls
Print "目标句柄:" & TheHwnd
TheName = String(255, Chr(0)) '必要的
GetWindowText TheHwnd, TheName, 255 '获取目标窗体名称
Print "目标句柄:" & TheName
End Sub
模块代码:
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Declare Function WindowFromPoint Lib "user32" (ByVal XPoint As Long, ByVal yPoint As Long) As Long
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public Type POINTAPI
X As Long
Y As Long
End Type
2023年01月10日 07点01分 3
比较推荐用这个,因为用名称检索会出问题,比如两个窗口名称相同,那么获取句柄的时候会获取第一个(按电脑后台排序)。
2023年01月10日 07点01分
你用我这个代码读取一遍网页的名称就知道你为什么没法获取网页句柄了。
2023年01月10日 07点01分
1