windows获取窗口句柄
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;
- }
windows获取窗口句柄的更多相关文章
- [WinAPI] 获取窗口句柄的几种方法
1.使用FindWindow函数获取窗口句柄 示例:使用FindWindow函数获取窗口句柄,然后获得窗口大小,并且移动窗口到指定位置. 我们想获得酷我音乐盒的窗口句柄并移动它,该怎么办呢? 首先打开 ...
- c++ windows 获取mac地址
c++ windows 获取mac地址 GetAdaptersInfo 用windows api获取mac地址和硬盘id编号 aa
- windows获取本机MAC地址并写入文件的bat
windows获取本机MAC地址并写入文件的bat MAC(Media Access Control)地址,或称为 MAC地址.硬件地址,用来定义网络设备的位置. bat代码例如以下: @echo o ...
- Windows 获取控制台窗口句柄
详细信息 因为多个窗口可能具有相同的标题,您应该更改当前的控制台窗口标题为唯一的标题.这将有助于防止返回不正确的窗口句柄.使用 SetConsoleTitle() 来更改当前的控制台窗口标题.下面是此 ...
- Windows获取其他进程中Edit控件的内容
最近做的MFC项目中,有个获取其他进程中Edit控件内容的需求,本来以为是个很简单的问题,但是来来回回折腾了不少时间,发博记录一下. 刚开始拿到这个问题,很自然的就想到GetDlgItemText() ...
- Windows获取文件大小
Windows最初的设计允许我们处理非常大的文件,所以最初的设计者选用64位值来表示文件大小.但是我们在日常处理过程中文件大小一般不会超过4GB.故Windows提供了两个联合类型的数据结构表示文件大 ...
- windows获取时间的方法
介绍 我们在衡量一个函数运行时间,或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,定时执 行一个特定的操作,比如在多媒体中,比如在游戏中等,都会用到时间函数.还比如我们通过记录 ...
- 1.RABBITMQ 入门 - WINDOWS - 获取,安装,配置
一. 背景: 公司项目有所改动,要求微信(移动端调用的接口),日志接口换位log4net,全部改成以rabbitMQ作为服务支持, 二.本地环境: windows 10 enterpr ...
- Windows获取进程完整路径
#include <stdio.h> #include <locale.h> #include <windows.h> #include <tlhelp32. ...
随机推荐
- c语言指针用法
一.指针 int t 定义整型变量 int *p p为指向整型数据的指针变量 int a[n] 定义整型数组a,它有n个元素 int *p[n] 定义指针数组p,它由n个指向整形数据的指针元素组成 i ...
- opencv学习笔记(02)——遍历图像(指针法)
#include <opencv2\core\core.hpp> #include <opencv2\highgui\highgui.hpp> #include <ope ...
- 在fedora 桌面上添加应用程序
在网上下了个android studio,这个程序只是的压缩包,解压后程序也只能在SHELL下敲入studio.sh才能运行 能不能向其他程序一样,在fedora桌面上找到应用程序,点击执行呢.在网上 ...
- 两年的坚持,最后还是决定将ISoft开源
还记得2011年9月份,我在上大四,本来想着考研能上个好点的学校,可我怎么就不愿去自习室上自习.每天晚上睡觉前都告诉自己明天早晨一定早起去上自习,但又每次醒来都不想起床啊,懒,没办法.睡到不想再睡了才 ...
- setTimeOut传参数(转)
无论是window.setTimeout还是window.setInterval,在使用函数名作为调用句柄时都不能带参数.带参数则立马执行,没有延时效果.可通过下面方式实现. <script ...
- xx创新论坛返工友情项目总结
友情项目,顾名思义就不是我做的,只是处于友情帮别人改改别人的代码帮别人找找bug...之所以要强调这一点是因为里面的低级问题太多,实在是不好意思承认自己和这个项目有关系.. 整个过程还是挺辛苦的,毕竟 ...
- 1190: [HNOI2007]梦幻岛宝珠 - BZOJ
Description 给你N颗宝石,每颗宝石都有重量和价值.要你从这些宝石中选取一些宝石,保证总重量不超过W,且总价值最大为,并输出最大的总价值. 数据范围:N<=100;W<=2^30 ...
- javascript禁用与启用select标签(实用版)
<html><head><script type="text/javascript">function disable() { docume ...
- 区分JS中的undefined,null,"",0和false
在程序语言中定义的各种各样的数据类型中,我们都会为其定义一个"空值"或"假值",比如对象类型的空值null,.NET Framework中数据库 字段的空值DB ...
- 版本管理工具介绍—Git篇
前篇 如题,提起版本管理工具相信做C#开发 还是对Git比较陌生 我们可能更熟悉vss.svn 记录此文的目的 更是为以后的前段学习做基础 现在的技术比如nodeJs angularJs ==都 ...