社区
界面
帖子详情
有没有办法,可用找到本进程指定标题的窗口,用FindWindow好像不行。。。
kuhaishui
2009-04-14 11:35:23
如题。。。
...全文
143
12
打赏
收藏
有没有办法,可用找到本进程指定标题的窗口,用FindWindow好像不行。。。
如题。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kuhaishui
2009-04-20
打赏
举报
回复
[Quote=引用 9 楼 P_hantom 的回复:]
枚举窗口是一个比较慢的过程,本质上和你自己做一个Manager没有区别,而Manager的速度更快,因为枚举窗口会把所有窗口遍历一次,而Manager只是在你需要的范围内搜索,速度会快很多
[/Quote]
--你说的也很有道理,只是如果工程大了的话,管理起来就比较麻烦,而且我的工程是加载了很多的dll的,dll里面本身就有不少的窗口,这样如果用manager更不方便以后扩展,所以暂时还是决定用枚举好了,先试试效果。。。
forestlier
2009-04-16
打赏
举报
回复
定义一个全局窗体句柄保存该窗体句柄。
etz2008
2009-04-16
打赏
举报
回复
枚举
www.xizi123.cn
IONPhantom
2009-04-16
打赏
举报
回复
枚举窗口是一个比较慢的过程,本质上和你自己做一个Manager没有区别,而Manager的速度更快,因为枚举窗口会把所有窗口遍历一次,而Manager只是在你需要的范围内搜索,速度会快很多
kuhaishui
2009-04-16
打赏
举报
回复
估计也只能用七楼的方法了。。。
IONPhantom
2009-04-14
打赏
举报
回复
你的窗口都是一个类型的吗?都是自己创建的吗?
如果是那就自己做一个Manager,每创建一个窗口就把对应Handle/窗口名/其他属性打成一个包或者做进一个结构里,然后存入Manager,这样在后面就可以通过窗口名在Manager里面查找到指定窗口的handle了
kuhaishui
2009-04-14
打赏
举报
回复
标题怎么修改,也不能保证就真的能唯一,但是加类名的话,如果像是messagebox这样方式弹出来的窗口就没有办法改了,而且修改类名的话就需要把所有的窗口都做修改,我的程序中dialog非常多,不想改呢,?
oyljerry
2009-04-14
打赏
举报
回复
FindWindow,你的标题最好为独一无二的,或者加上类名来组合查找...
byxdaz
2009-04-14
打赏
举报
回复
先枚举所有的窗口,再根据类名/窗口名查找。
HWND hWnd;
HWND m_hwndFind[100] = {0};
int m_num = 0 ;
TCHAR m_store[MAX_PATH];
TCHAR m_name[MAX_PATH];
TCHAR m_strClass[MAX_PATH];
TCHAR m_FilePath[MAX_PATH];
TCHAR m_FileName[24];
// Enum Windows
BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam)
{
if(::GetWindowLong(hWnd,GWL_STYLE)&WS_VISIBLE)
{
m_hwndFind[m_num] = hWnd;
m_num++;
}
return TRUE;
}
//用法 ::EnumWindows(EnumWindowsProc,NULL);
IONPhantom
2009-04-14
打赏
举报
回复
[Quote=引用 4 楼 kuhaishui 的回复:]
--没有其他更好的办法?
[/Quote]
这个方法不好吗?
DavidHsing
2009-04-14
打赏
举报
回复
[Quote=引用 2 楼 kuhaishui 的回复:]
标题怎么修改,也不能保证就真的能唯一,但是加类名的话,如果像是messagebox这样方式弹出来的窗口就没有办法改了,而且修改类名的话就需要把所有的窗口都做修改,我的程序中dialog非常多,不想改呢,?
[/Quote]
弹出窗口的类名是 #32770
kuhaishui
2009-04-14
打赏
举报
回复
[Quote=引用 3 楼 P_hantom 的回复:]
你的窗口都是一个类型的吗?都是自己创建的吗?
如果是那就自己做一个Manager,每创建一个窗口就把对应Handle/窗口名/其他属性打成一个包或者做进一个结构里,然后存入Manager,这样在后面就可以通过窗口名在Manager里面查找到指定窗口的handle了
[/Quote]
--没有其他更好的办法?
VC
进程
ID获得主
窗口
句柄获得
进程
名
不能用
进程
ID,要用线程ID,因为一个
进程
可能有多个线程,每个线程都可能会有主
窗口
. B. 主
窗口
不会有WS_CHILD属性 C. 主
窗口
没
有父
窗口
D. 主
窗口
一般都有子
窗口
(这个不是一定的,但是具有普遍性)
API之网络函数---整理网络函数及功能
GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 GetCharABCWidths 判断TureType字体中一个或多个字符的A-B-C大小 GetCharABCWidthsFloat ...
中文API支持库(1.0-0
_寻找
窗口
() 寻找
窗口
列表中第一个符合
指定
条件的顶级
窗口
(在vb里使用:
FindWindow
最常见的一个用途是获得ThunderRTMain类的隐藏
窗口
的句柄;该类是所有运行中vb执行程序的一部分。获得句柄后,
可用
api函数...
补丁模块(带源码)InlinePatch,Hook,内存DLL注入等等
声明:大家使用过程中发现任何问题都不要来问我,请自己想
办法
解决。我现在已经完全放弃易语言了,改用VC++了。 以下是全部接口: 模块名称:sunflover.ec 作者:by sunflover 版本:2015.2 自己收集的一些常用函数...
511遇见易语言API模块程
窗口
取句柄
FindWindow
A
寻找
窗口
列表中第一个符合
指定
条件的顶级
窗口
(在vb里使用:
FindWindow
最常见的一个用途是获得ThunderRTMain类的隐藏
窗口
的句柄;该类是所有运行中vb执行程序的一部分。获得句柄后,
可用
api函数GetWindowText取得这...
界面
15,978
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章