函数原型:FindWindow(lpszClassName,lpszWindowName)

参数:lpszClassName--窗口类名;lpszWindowName--窗口标题

功能:查找窗口,未找到则返回NULL

SDK中

HWND hwnd = FindWindow(NULL, "计算器");

if(m_pWnd)

{

AfxMessageBox("找到了!");

::PostMessage(hwnd,WM_CLOSE,0,0);//强迫退出

}

MFC中

CWnd * m_pWnd = FindWindow(NULL, "计算器");

if(m_pWnd)

{

AfxMessageBox("找到了!");

::PostMessage(m_pWnd->m_hWnd,WM_CLOSE,0,0);//强迫退出

}

函数原型:HWND FindWindowEx(

HWND hwndParent,      // handle to parent window
HWND hwndChildAfter,  // handle to a child window
LPCTSTR lpszClass,    // pointer to class name
LPCTSTR lpszWindow    // pointer to window name
);

功能:查找子窗口或子控件,未找到则返回NULL

HWND h = FindWindow(NULL, "计算器" );

HWND m_hwnd = FindWindowEx(h, 0, "Button", "Ok" );

HWND m_hwnd = FindWindowEx(h,NULL,NULL,"Ok");

HWND m_hwnd = FindWindowEx(h,NULL,"Button",NULL);

SendMessage(m_hwnd, WM_KEYDOWN, 13, 0x011c0001 );
SendMessage(m_hwnd, WM_KEYDOWN, 13, 0x011c0001 );
SendMessage(m_hwnd, WM_KEYUP, 13, 0xc11c0001 );

其他函数

HWND GetNextWindow(HWND hWnd,UNIT wCmd)

功能:返回z序中的前一个或后一个窗口的句柄

参数:
hWnd:基准窗口句柄
wCmd:指明窗口返回的是前一窗口的句柄还是后一窗口的句柄。该参数可以是下列两个值之一:
GW_HWNDNEXT:返回在给定窗口的下面窗口的句柄。
GW_HWNDPREV:返回在给定窗口的上面窗口的句柄。
GW_HWNDFIRST = 0;
GW_HWNDLAST = 1;
GW_HWNDNEXT = 2;
GW_HWNDPREV = 3;
GW_OWNER = 4;
GW_CHILD = 5;

返回值:如果函数成功,返回值是前一窗口(或后一窗口)的句柄。如果前后窗口不存在,则返回值为NULL。

BOOL EnumChildWindows(HWND hWndParent,WNDENUMPROC lpEnumFunc, LPARAM lParam)

功能:枚举子窗体

参数:

hWndParent 父窗口句柄
lpEnumFunc 回调函数地址
lParam 自定义参数

注意:回调函数的返回值将会影响到这个API函数的行为。如果回调函数返回true,则枚举继续直到枚举完成;如果返回false,则将会中止枚举。

int GetClassName(HWND hWnd, LPTSTR IpClassName, int nMaxCount)

功能:获得指定窗口所属的类的类名

参数:

hWnd:窗口的句柄及间接给出的窗口所属的类。
IpClassName:指向接收窗口类名字符串的缓冲区的指针。
nMaxCount:指定由参数lpClassName指示的缓冲区的字节数。如果类名字符串大于缓冲区的长度,则多出的部分被截断。

返回值:如果函数成功,返回值为拷贝到指定缓冲区的字符个数:如果函数失败,返回值为0。

FindWindow和FindWindowEx的更多相关文章

  1. WinAPI: FindWindow、FindWindowEx - 查找窗口

    FindWindow(   lpClassName,        {窗口的类名}   lpWindowName: PChar {窗口的标题} ): HWND;              {返回窗口的 ...

  2. Delphi 中 FindWindow 和 FindWindowEx 找到外部进程,然后发送消息(比如最大化)

    FindWindow(lpClassName,        {窗口的类名}lpWindowName: PChar {窗口的标题}): HWND;              {返回窗口的句柄; 失败返 ...

  3. Delphi 中 FindWindow 和 FindWindowEx 的语法和用法

    FindWindow(lpClassName,        {窗口的类名}lpWindowName: PChar {窗口的标题}): HWND;              {返回窗口的句柄; 失败返 ...

  4. Delphi 版FindWindow 和 FindWindowEx 的语法和用法

    FindWindow(lpClassName,        {窗口的类名}lpWindowName: PChar {窗口的标题}): HWND;              {返回窗口的句柄; 失败返 ...

  5. C#根据弹窗标题获取窗体句柄并模拟点击按钮(FindWindow,FindWindowEx,SendMessage)

    任务:将下面弹窗自动关闭 /// <summary> /// 找到窗口 /// </summary> /// <param name="lpClassName& ...

  6. FindWindow和FindWindowEx函数使用

    FindWindow(   lpClassName,        {窗口的类名}   lpWindowName: PChar {窗口的标题} ): HWND;              {返回窗口的 ...

  7. Delphi实现获取句柄并发送消息的方法(FindWindow、FindWindowEx、EnumChildWindows、SendMessage)

    Delphi实现获取句柄并发送消息的方法 本文以实例形式详细说明了Delphi获取句柄并发送消息的方法,具体用法说明如下: 查找另外一个窗口的句柄: handle := FindWindow(nil, ...

  8. C#,使用FindWindow和FindWindowEx查找窗体和控件

    函数: // Find Window // 查找窗体 // @para1: 窗体的类名 例如对话框类是"#32770" // @para2: 窗体的标题 例如打开记事本 标题是&q ...

  9. C#使用Windows API 隐藏/显示 任务栏 (FindWindowEx, ShowWindow)

    原文 C#使用Windows API 隐藏/显示 任务栏 (FindWindowEx, ShowWindow) 今天,有网友询问,如何显示和隐藏任务栏? 我这里,发布一下使用Windows API 显 ...

随机推荐

  1. 【算法学习】【洛谷】cdq分治 & P3810 三维偏序

    cdq是何许人也?请参看这篇:https://wenku.baidu.com/view/3b913556fd0a79563d1e7245.html. 在这篇论文中,cdq提出了对修改/询问型问题(Mo ...

  2. python3 asyncio官方文档中文版

    事件循环基类 事件循环基类 事件循环是由asyncio提供的核心执行装置.它提供了多种服务,包括: 注册.执行和关闭延时调用(超时) 为各种通信创建客户端和服务端传输 为一个外部程序通信启动子进程和相 ...

  3. Redis相关链接

    Redis 教程 http://www.runoob.com/redis/redis-data-types.html Python操作redis学习系列之(集合)set,redis set详解 (六) ...

  4. SQL2000数据库修改sa密码

    开始——程序——Microsoft SQL Server——企业管理器 2 展开数据库Microsoft SQL Server—— SQL Server组——安全性——登录——双击sa 3 在常规内有 ...

  5. ubuntu获得root用户权限,使用xshell连接!

    一.获取root用户权限 打开linux终端命令,输入 sudo passwd root Enter new UNIX password: (在这输入你的密码) Retype new UNIX pas ...

  6. drools7 (三、kmodule 介绍)

    注意几点: 1. kmodule 有默认的加载路径, 看  KieModuleModelImpl 这个类的源代码 public class KieModuleModelImpl implements ...

  7. bzoj 2756

    2756 思路: 二分讨论,网络流检验: 代码: #include <bits/stdc++.h> using namespace std; #define INF 1e16 #defin ...

  8. 【PAT】1018 锤子剪刀布 (20)(20 分)

    1018 锤子剪刀布 (20)(20 分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算 ...

  9. C++ 内存分配(new,operator new)详解

    参考:C++ 内存分配(new,operator new)详解 如何限制对象只能建立在堆上或者栈上 new运算符和operator new() new:指我们在C++里通常用到的运算符,比如A* a ...

  10. Abstract Factory 抽象工厂

    意图 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 适用性 一个系统要独立于它的产品的创建.组合和表示时 结构 参与者 AbstractFactory:声明一个创建抽象产品对象 ...