通过类名和窗口名查找指定窗口
通过类名和窗口名查找指定窗口
BOOL CALLBACK MyEnumProc(HWND hwnd, LPARAM lParam);
class CFindHWND
{public:CFindHWND();~CFindHWND();HWND FindWindow(HWND parent, CString wnd_class, CString wnd_name);BOOL EnumProc(HWND, LPARAM);
protected:BOOL IsEqual(HWND hwnd, CString wnd_class, CString wnd_name);
private:BOOL is_finded;HWND finded_hwnd;CString find_wnd_class;CString find_wnd_name;
};CFindHWND::CFindHWND():is_finded(FALSE),finded_hwnd(FALSE)
{}CFindHWND::~CFindHWND()
{}HWND CFindHWND::FindWindow(HWND parent, CString wnd_class, CString wnd_name)
{find_wnd_class = wnd_class;find_wnd_name = wnd_name;EnumChildWindows(parent, MyEnumProc, (LPARAM)this);return finded_hwnd;
}BOOL CFindHWND::IsEqual(HWND hwnd, CString wnd_class, CString wnd_name)
{TCHAR tmp_name[MAX_PATH] = {0};TCHAR tmp_class[MAX_PATH] = {0};GetWindowText(hwnd, tmp_name, MAX_PATH);if (wnd_name.CompareNoCase(tmp_name) == 0) {GetClassName(hwnd, tmp_class, MAX_PATH);if (wnd_class.CompareNoCase(tmp_class) == 0) return TRUE;}return FALSE;
}BOOL CFindHWND::EnumProc(HWND hwnd, LPARAM)
{if (is_finded)return FALSE;if (IsEqual(hwnd,find_wnd_class, find_wnd_name)){is_finded = TRUE;finded_hwnd = hwnd;return FALSE;}if(::GetTopWindow(hwnd)){EnumChildWindows(hwnd, MyEnumProc, NULL);}return TRUE;
}BOOL CALLBACK MyEnumProc(HWND hwnd, LPARAM lParam)
{CFindHWND* ptr = (CFindHWND*)lParam;BOOL is_continue = FALSE;if(ptr){is_continue = ptr->EnumProc(hwnd, lParam);}return is_continue;
}
使用:
CFindHWND find;
HWND hwnd = find.FindWindowW(GetDesktopWindow()->m_hWnd, L"Chrome_RenderWidgetHostHWND", L"Chrome Legacy Window");
通过类名和窗口名查找指定窗口相关推荐
- C#查找指定窗口的子窗口的句柄
用axWebBrowser加载HTML网页时,真正显示内容的窗体并不是axWebBrowser,而是其子窗口的子窗口一个名为Internet Explorer_Server的类.从spy++可知: 公 ...
- Windows Qt5 集成 OBS 实现录制应用窗口(可指定窗口内录制区域)
OBS 的编译 编译参考链接 Demo 工程 链接:https://pan.baidu.com/s/1vVPfsSZfzs2LBcfjEgUr3A 提取码:3i4c: Qt 版本: 5.7.1 msv ...
- C# API之常用操作窗口类函数详解[查找所有窗口、获取目标句柄的类名、获取窗口文本、获取当前活动窗口、通过窗口句柄获取线程ID、获取指定窗口位置]
/// <summary>/// 查找所有窗口(只要是在进程里面的)/// 如果不限制类名或者标题使用null代替/// </summary>/// <param nam ...
- 用C#调用Windows API向指定窗口发送按键消息
为什么80%的码农都做不了架构师?>>> 用C#调用Windows API向指定窗口发送 一.调用Windows API. C#下调用Windows API方法如下: 1.引入 ...
- 用C#调用Windows API向指定窗口发送按键消息(转载)
用C#调用Windows API向指定窗口发送按键消息 z 用C#调用Windows API向指定窗口发送 一.调用Windows API. C#下调用Windows API方法如下: 1.引入命名空 ...
- 易语言关闭指定窗口_易语言取外部程序指定窗口位置源码 _易语言源码网_易语言资源网...
取外部程序指定窗口位置 系统结构:取窗口位置,取指定窗口句柄,窗口是否最大,窗口是否最小, ======窗口程序集1 | | | |------ _按钮1_被单击 | | | | ====== ...
- 打开新窗口的几种方式及target=_blank指定窗口名称
打开新窗口的几种方式及target=_blank指定窗口名称 打开新窗口的几种方式: 1.form提交到新窗口 <form action="action.jsp" ta ...
- ffmpeg录屏/摄像头/指定窗口;别名alias设置
关于ffmpeg的使用方法很多,我简单写一下今天我捣鼓的几个.因为我的项目中要用到录屏和录制摄像头,所以试了下.网上关于录制指定窗口的方法并不多,我也是找了好久,试了好久才试出来的. 好了,废话不多说 ...
- Python+selenium 自动化-通过窗口名切换窗口,如何获取当前窗口的title窗口名
通过索引切换窗口 左边从0开始,-1是右边第一个窗口 windows = driver.window_handles driver.switch_to.window(windows[-1]) 通过窗口 ...
最新文章
- 干货丨机器学习和深度学习概念入门
- 客户端svn出现authorization failed异常
- relu函数_从 ReLU 到 GELU,一文概览神经网络的激活函数
- Cachefiled
- 降低前端业务复杂度新视角:状态机范式
- pureMVC简单示例及其原理讲解四(Controller层)
- 关于vmware虚拟机硬件里没有软盘驱动器,而操作系统里还有的解决方法
- win7中文版转英文版 只须下载安装语言包
- Notepad ++ 汉化版
- 详解24个经典股票技术指标(二)
- 简历写成这样,让我成为这一届的面霸
- 模块度(Modularity)与Fast Newman算法讲解与代码实现
- Android-PickerView实现全国地区选择
- Android基础之RemoteViews
- fiddle无法抓包小程序解答
- 土豆 GhostXP SP3 系统2012新年纯净版V1
- 用matlab实现蛇形,matlab蛇形机械手仿真建模
- unity ugui android 小键盘,Unity inputfield 实现显示 隐藏密码功能(在安卓中切换不打开下虚拟键盘)...
- 韩国网站的一些弱口令
- java面试专题(商城面试问题)
热门文章
- A - Wireless Network POJ - 2236
- matlab disp fprinr,matlab如何使输出结果更美观(symdisp函数——pretty函数升级版)
- mysql索引底层实现原理_mysql的索引底层之实现原理
- php statements,PHP PDOStatement::setAttribute讲解
- IDEA JAVA gradle等常见工具/包 踩坑记录
- WebApi2 知识点总结
- js高级程序设计(六)面向对象
- Discuz NT 架构剖析之Config机制
- poj1651(区间dp)
- SQL Server 查看对象的权限