1、使用FindWindow函数获取窗口句柄

示例:使用FindWindow函数获取窗口句柄,然后获得窗口大小和标题,并且移动窗口到指定位置。

#include <Windows.h>
#include <stdio.h>
#include <string.h>
#include <iostream.h>int main(int argc, char* argv[])
{//根据窗口名获取QQ游戏登录窗口句柄HWND hq=FindWindow(NULL,"QQ2012");   //得到QQ窗口大小RECT rect;  GetWindowRect(hq,&rect);  int w=rect.right-rect.left,h=rect.bottom-rect.top;cout<<"宽:"<<w<<" "<<"高:"<<h<<endl;//移动QQ窗口位置MoveWindow(hq,100,100,w,h,false);//得到桌面窗口HWND hd=GetDesktopWindow();GetWindowRect(hd,&rect);     w=rect.right-rect.left;h=rect.bottom-rect.top;cout<<"宽:"<<w<<" "<<"高:"<<h<<endl;return 0;
}

2、使用EnumWindows和EnumChildWindows函数以及相对的回调函数EnumWindowsProc和EnumChildWindowsProc获取所有顶层窗口以及它们的子窗口(有些窗口做了特殊处理,比如QQ是不能通过这个方法获得的)

示例:

#include "stdafx.h"
#include <Windows.h>
#include <stdio.h>
#include <tchar.h>
#include <string.h>
#include <iostream.h>//EnumChildWindows回调函数,hwnd为指定的父窗口
BOOL CALLBACK EnumChildWindowsProc(HWND hWnd,LPARAM lParam)
{char WindowTitle[100]={0};    ::GetWindowText(hWnd,WindowTitle,100);printf("%s\n",WindowTitle);return true;
}//EnumWindows回调函数,hwnd为发现的顶层窗口
BOOL CALLBACK EnumWindowsProc(HWND hWnd,LPARAM lParam)
{if (GetParent(hWnd)==NULL && IsWindowVisible(hWnd) )  //判断是否顶层窗口并且可见{char WindowTitle[100]={0};    ::GetWindowText(hWnd,WindowTitle,100);printf("%s\n",WindowTitle);EnumChildWindows(hWnd,EnumChildWindowsProc,NULL); //获取父窗口的所有子窗口}return true;
}int main(int argc, _TCHAR* argv[])
{//获取屏幕上所有的顶层窗口,每发现一个窗口就调用回调函数一次EnumWindows(EnumWindowsProc ,NULL );return 0;
}

3、使用GetDesktopWindow和GetNextWindow函数得到所有的子窗口

示例:

#include "stdafx.h"
#include <Windows.h>
#include <stdio.h>
#include <tchar.h>
#include <string.h>
#include <iostream.h>int main(int argc, _TCHAR* argv[])
{   //得到桌面窗口HWND hd=GetDesktopWindow();//得到屏幕上第一个子窗口hd=GetWindow(hd,GW_CHILD);char s[200]={0};//循环得到所有的子窗口while(hd!=NULL){memset(s,0,200);GetWindowText(hd,s,200);/*if (strstr(s,"QQ2012")){cout<<s<<endl;SetWindowText(hd,"My Windows");}*/cout<<s<<endl;hd=GetNextWindow(hd,GW_HWNDNEXT);}return 0;
}

MFC 获取窗口句柄相关推荐

  1. MFC获取窗口句柄号的六种方法

    CClientDC dc(this); CString fun1; //直接获得 fun1.Format("%ld", AfxGetMainWnd()->m_hWnd); f ...

  2. c语言 取窗口句柄,MFC获取句柄的方法

    句柄获取方法(获取该窗口的句柄后,即可向该窗口类类发送消息.处理程序): 例如:::PostMessage("句柄", WM_USER_DRAWVIEWPIC_EDS, 0, 0) ...

  3. python获取窗口句柄_Python+selenium 获取浏览器窗口坐标、句柄的方法

    1.0 获取浏览器窗口坐标 python目录可找到Webdriver.py 文件定义了get_window_rect()函数,可获取窗口的坐标和大小(长宽),但出现"Command not ...

  4. MFC 获取其他窗口的Edit文本和单击Button

    auto hmain = ::FindWindow(NULL, L"MFCApplication2");if (hmain){//获取窗口句柄CRect rect;::GetWin ...

  5. delphi 鼠标获取窗口句柄_Python 脚本自动对窗口进行截图

    利用Python自带的win32api和win32con.win32gui等模块,我们能执行许多windows下的自动化操作.比如两个窗口的自动点击操作,从软件中的窗口复制文本到txt中,甚至是截图操 ...

  6. MFC 获取系统时间及比较

    1.MFC 获取当前系统时间 CTime time = CTime::GetCurrentTime(); //获取系统日期 CString strDate = time.Format(_T(" ...

  7. win32 获取窗口句柄的方法

    第一种方法是根据窗口句柄值获取窗口句柄 使用spy++获取指定窗口的窗口句柄值,因为句柄值是16进制数,所以前面加0x,然后进行强制转换为HWND类型. HWND hWnd=(HWND)0x00280 ...

  8. AutoIt3 使用进程名获取窗口句柄

    背景 需要用AutoIt3控制QQ音乐播放器,首先要获取QQ音乐的窗口句柄 问题 WinGetHandle方法不能满足要求 QQ音乐的Title会根据当前播放的歌曲动态改变 而QQ音乐与QQ的窗口Cl ...

  9. 通过Windows进程ID获取窗口句柄

    通过Windows进程ID获取窗口句柄 方法一:使用EnumWindows的方式 ///< 枚举窗口参数 typedef struct { HWND hwndWindow; // 窗口句柄 DW ...

  10. 最新版按键精灵一共有5个插件命令可以获取窗口句柄

    当前最新版按键精灵一共有5个插件命令可以获取窗口句柄. //下面这句是查找窗口类名(0)或者标题("无标题 - 记事本"),返回找到的句柄Hwnd //这个命令可以不分窗体是隐藏还 ...

最新文章

  1. pragma指令简介
  2. ultra96-v2通过网线连接PC传输文件
  3. ajax登录非空判断,email ajax传输数据去重和非空判断(示例代码)
  4. Java工程师修炼之路
  5. 求质数算法的N种境界 (N 10) zz
  6. 支付宝错误提示: sign check fail: check Sign and Data Fail JSON also
  7. 深入浅出VC++串口编程--基于控件
  8. weblogic服务器连接池配置细节
  9. 排队论是计算机科学新分支,(计算机科学的分支领域体系.doc
  10. Pytorch的可视化工具tensorboardX
  11. 无人车传感器 IMU
  12. IDEA插件系列(88):Tab Shifter插件——选项卡移动工具
  13. BBS.peidy.com版本
  14. ceres实现针孔相机bundle adjustment
  15. Calander使用心得
  16. 解决linux系统网络时常断开的问题
  17. 数据安全评估体系建设
  18. myeclipse下使用maven搭建SSM(spring、springmvc、mybatis)框架
  19. 搭建数据指标体系(抖音)
  20. 55. Jump Game 解题记录

热门文章

  1. 【第135期】游戏策划:给@蒙蒙水雾的简历分析
  2. 软件测试环境搭建及维护注意事项
  3. 十四届恩智浦智能车竞赛双车组-星夜兼程队2019回顾
  4. EEGLAB在MATLAB中的下载、安装教程
  5. 大一学科不挂科 速冲方法推荐(高数上+高数下+线代+大物)
  6. svnserver目录浏览器可以访问,但客户端不可以访问,解决方法。
  7. 新建raw data 分区
  8. mysql 局域网数据库共享,SQL Server 2005 在局域网中共享数据库
  9. matlab状态空间程序,实验四用MATLAB求解状态空间模型
  10. tar打包文件如何排除文件夹