社区
进程/线程/DLL
帖子详情
已知对话框窗体句柄,怎样判断它是自定义对话框窗体还是属于系统对话框窗体??
gaoxiaowei
2012-03-15 03:37:25
如题已知窗体句柄,怎样判断它是自定义对话框窗体还是属于系统对话框??
...全文
164
18
打赏
收藏
已知对话框窗体句柄,怎样判断它是自定义对话框窗体还是属于系统对话框窗体??
如题已知窗体句柄,怎样判断它是自定义对话框窗体还是属于系统对话框??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gaoxiaowei
2012-03-15
打赏
举报
回复
[Quote=引用 15 楼 gfm688 的回复:]
CFileDialog 就是对 GetOpenFileName / GetSaveFileName 的封装,使用Comdlg32.dll
还有 目录选择对话框是SHBrowseForFolder,使用Shell32.dll
[/Quote]
ok了,其实我可以判断ModuleName不属于我的进程名字即可,非常感谢,接分吧 哈哈
zero_226
2012-03-15
打赏
举报
回复
可不可以读取窗口的属性,看看这些属性里有没有自定义的属性?
Lactoferrin
2012-03-15
打赏
举报
回复
看类名
gfm688
2012-03-15
打赏
举报
回复
CFileDialog 就是对 GetOpenFileName / GetSaveFileName 的封装,使用Comdlg32.dll
还有 目录选择对话框是SHBrowseForFolder,使用Shell32.dll
gaoxiaowei
2012-03-15
打赏
举报
回复
[Quote=引用 12 楼 gfm688 的回复:]
就是判断窗口是哪个模块的了
如果是MessageBox, 则GetWindowModuleFileName第二个参数返回User32.dll的的路径
[/Quote]
这个对messagebox 可以做过滤,对CFileDialog没有过滤掉
gaoxiaowei
2012-03-15
打赏
举报
回复
[Quote=引用 12 楼 gfm688 的回复:]
就是判断窗口是哪个模块的了
如果是MessageBox, 则GetWindowModuleFileName第二个参数返回User32.dll的的路径
[/Quote]
我明白了,我试试看。
gfm688
2012-03-15
打赏
举报
回复
就是判断窗口是哪个模块的了
如果是MessageBox, 则GetWindowModuleFileName第二个参数返回User32.dll的的路径
gfm688
2012-03-15
打赏
举报
回复
试试 GetWindowModuleFileName
gaoxiaowei
2012-03-15
打赏
举报
回复
高手支招啊
gaoxiaowei
2012-03-15
打赏
举报
回复
我把代码贴一下:
LRESULT CALLBACK CSkinXImpl::HookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
CWPSTRUCT cwps;
if( (nCode == HC_ACTION) && !::IsBadReadPtr( (LPVOID)lParam, sizeof(CWPSTRUCT)) )
{
CWPSTRUCT * pCwps = reinterpret_cast<CWPSTRUCT*>( lParam );
CopyMemory( &cwps, (LPVOID)lParam, sizeof(CWPSTRUCT) );
switch(cwps.message)
{
case WM_CREATE:
{
TCHAR szClass[MAX_PATH];
memset( szClass, 0, sizeof( szClass ) );
GetClassName(cwps.hwnd, szClass, MAX_PATH);
//这个时候想过滤掉系统对话框,不做换肤处理
// skin
CWidgetHookBase* pWidget = NULL;
pWidget = CWidgetFactory::Instance()->CreateWidget(szClass);
if (pWidget) pWidget->Install(cwps.hwnd);
break;
}
default:
break;
}
}
return CallNextHookEx((HHOOK)CSkinXImpl::m_hHook, nCode, wParam, lParam);
}
gaoxiaowei
2012-03-15
打赏
举报
回复
[Quote=引用 7 楼 gfm688 的回复:]
不好的意思,我理解错楼主的意思了,刚刚想到系统对话框是指MessageBox那些
[/Quote]
没关系,感谢你的回答。
gfm688
2012-03-15
打赏
举报
回复
不好的意思,我理解错楼主的意思了,刚刚想到系统对话框是指MessageBox那些
gaoxiaowei
2012-03-15
打赏
举报
回复
sorry,补充一下:现在是在1个进程里面,判断对话框窗体 是自己设计的窗体,还是系统通用的窗体。
通用窗体如:CFileDialog 、Messagebox弹出的窗体
孤魂游梦
2012-03-15
打赏
举报
回复
[Quote=引用 4 楼 gaoxiaowei 的回复:]
引用 2 楼 gfm688 的回复:
GetWindowThreadProcessId
OpenProcess
EnumProcessModules
GetModuleFileNameEx
判断窗体对应的进程
这个怎么判断??
[/Quote]
看进程拥有者
gaoxiaowei
2012-03-15
打赏
举报
回复
[Quote=引用 2 楼 gfm688 的回复:]
GetWindowThreadProcessId
OpenProcess
EnumProcessModules
GetModuleFileNameEx
判断窗体对应的进程
[/Quote]
这个怎么判断??
gaoxiaowei
2012-03-15
打赏
举报
回复
我现在通过LONG nStyle=GetWindowLong(hWnd,GWL_STYLE);获取到了窗体的类型,但是现在还没找到区分的方法(Spy++对比了一些style),不知道还有什么办法来解决?
gfm688
2012-03-15
打赏
举报
回复
GetWindowThreadProcessId
OpenProcess
EnumProcessModules
GetModuleFileNameEx
判断窗体对应的进程
罗平
2012-03-15
打赏
举报
回复
应该不能区分吧?这个句柄是没有任何分别的。
c#
已知
窗口
句柄
获取窗口标题的方法
c#
已知
窗口
句柄
获取窗口标题的方法,让你通过
已知
的窗口
句柄
获取窗口标题
枚举
已知
名称
窗体
下所有控件
最近需要进行一个项目,其中部分工作获取某
窗体
下所有控件信息,在网上查找相关资料后自己稍微动手调整了一下
用窗口
句柄
获取窗口标题
已知
窗口
句柄
,获取标题.不知道有没有人需要
高仿SPY++拖动鼠标获取
句柄
高仿SPY++拖动鼠标获取
句柄
(也对
句柄
进行了十六进制和十进制分别显示,可以直接复制
句柄
不需要再转换),获取
窗体
标题,控件类型等等.增加了一些
已知
句柄
后对
窗体
及控件的操作.比如使用SendMessage函数发送WM_SETTEXT消息更改文字,发送WM_SHOWWINDOW消息隐藏模式
对话框
等等(wMsG的内容可以网上自行搜索对照),也比如API函数SetWindowPos,SetForegroundWindow的等等都有做过一一测试. 拖动的方式与SPY++完全一模一样,这是在研究了spyxx.exe文件之后想到的一种实现方式. 因为时间关系还有一些像SetWindowsHookEx钩子,ReadProcessMemory内存读取与RtlMoveMemory等想写的没有写完,有时间更新再补上了. 下载后评论留下邮箱,我会发送比较新的版本给大家,其中新版本整合了包含屏幕取色器读取任何坐标的颜色RGB,以及在获取
句柄
的同时获取进程信息,对进程信息进行了极为详细的解读,包括进程pid,主路径,进程详细模块的(名称,内存地址,函数地址,模块完整路径,加载模块内存,模块文件编译时的原名称,版本等),也对进程下的线程信息(线程id,优先级,状态,等待原因,线程
句柄
,线程函数内存地址)等进行了整理,同时支持了强制结束掉线程.
微波技术基础计算器MWC.exe.zip
软件介绍: 微波技术基础计算器是绿色软件,不用安装,使用时只需把所有文件解压缩到同一个文件夹中,运行mwc.exe即可。长线计算:在相应栏目中输入
已知
参数值,单击计算按钮,出现如下图的窗口。拖动绿色的
句柄
,
窗体
下部即显示出当前位置对应的各参数值。圆图 绘制圆图的窗口如下,它可以实现两个功能 1.手工输入数据绘制圆图 方法:直接在编辑框中输入参数,然后单击确定。2.自动从长线计算的窗口中获取计算数据,并自动绘制圆图。 方法: 选中“自动获取数据”,即可自动长线计算的窗口中获取计算数据,并自动绘制圆图。 选中“自动刷新”,可以使两个窗口中的数据自动保持同步。这时拖动长线窗口中的绿色
句柄
,可以看到圆图随距离的变化。提示:如屏幕分辨率过低,导致两窗口无法同时选中,可钩选“
窗体
半透明”选项。单枝节匹配使用方法 输入需要的参数,单击开始按钮。 提示 不选中“动画显示过程”,可以大大加快匹配速度。 双口网络参量转换 方法 选择输入参量类型,并输入参量值,单击开始转换按钮。 提示 若结果显示不全,在结果上单击,结果会出现在最下方的提示框中
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章