如何通过api得到一个已运行程序窗口(如IE浏览窗口)或其上面的命令按钮的hwnd?

hbpjz 2000-01-31 09:28:00
...全文
320 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiying_bao 2001-02-12
  • 打赏
  • 举报
回复
我有一个程序,可以列出所有窗的标题,类名,句柄,然后可一级一级向下查找子窗口,可以找到ie窗口的句柄,类名,标题,其中的coolbar,但是按钮找不到,因为它不是button,也许是image,因为我那个程序找不到image的句柄,button,picture等窗口都可以找到,可能image不是窗口吧.如果要的话,给我mail:a_liu_gui@263.net
axi 2000-09-01
  • 打赏
  • 举报
回复
Use the function GetDlgItem, And get the The Parameter by sp++. You can get very child windows handle.
benbenlittle 2000-03-01
  • 打赏
  • 举报
回复
GetParent 可以返回它的父窗口的句柄
benbenlittle 2000-02-27
  • 打赏
  • 举报
回复
GetcursorPos 获得鼠标的位置
WindowFromPoint 返回鼠标所在位置的窗口句柄
vBin 2000-01-31
  • 打赏
  • 举报
回复
你可以到<软件发布>的<源程序示范>中找到源代码。
WHQ 2000-01-31
  • 打赏
  • 举报
回复
IE的标题是可变的,不能通过它来查找IE主窗口,应该通过类名来查找,IE主窗口的类名为IEFrame,要想得到一个窗口中的子窗口,可用GetWindow
littletao 2000-01-31
  • 打赏
  • 举报
回复
举个例子,获得exe的是通过下面程序。
Public Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Dim hwnd As Integer
Dim strAppName As String

strAppName = "app name"
hwnd = FindWindow(vbNullString, strAppName)
If hwnd Then
Call PostMessage(hwnd, 273, 2, 0)
End If
littletao 2000-01-31
  • 打赏
  • 举报
回复
findwindow,hehe
kathywp 2000-01-31
  • 打赏
  • 举报
回复
忘了,
用SPY++找出BUTTON的类名与CAPTION
如果BUTTON太多,可以这样:
FINDWINDOWEX(HWND,NULL,S,D)
SETWINDOWTEXT(HWND,自定义)
再找。
kathywp 2000-01-31
  • 打赏
  • 举报
回复
用FINDWINDOW(S ,D)第一个窗口
用FINDWINDOWEX(...,...,...,...)找到第二个窗口
FINDWINDOWEX(HWND,NULL,S,D)
929 2000-01-31
  • 打赏
  • 举报
回复
用FINDWINDOW当然可以得到一个已运行程序的窗口。但是还可以用ENUMWINDOWS和ENUMCHILDWINDOWS或GETWINDOW的API函数。当然在VB中创建回调,略有困难。可以写一个函数,然后用ADDRESSOF取得此函数的地址,传入ENUMWINDOWS或ENUMCHILDWINDOWS中。可在VB中查找ADDRESSOF来获得创建回调的有关说明。用枚举可以获得系统中正在运行程序的窗口和子窗口。

1,485

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧