Windows API学习——千里之行,始于足下


随着网络和移动平台的发展,Windows独霸天下的时代已经过去,现在是网络和移动终端统治世界的时候了,而因为在新领域的表现不佳,微软的市值先后被苹果和IBM超越。基于C/C++的Window程序似乎也正逐渐失去往日的光辉,且不说平台的原因,即使是在Win平台上,新的、易用性更强的编程语言也层出不穷。对于专业的程序员而言,Windows C/C++的吸引力恐怕大大减弱了,而我认识的一些软件专业的同学,其必修课都没有涉及这一方面。但是Windows依然是最常用的PC系统,除了在消费PC保持垄断地位外,还开始在工业控制、数据采集等领域占据一席之地,而后者也是我学习Windows API的动力。

开始整理API方面学习经验的直接原因是想编一个网页游戏的外挂,却发现自己对API熟悉的有限,而且很是缺乏条理。虽然有MSDN可以查询,但翻阅别人的东西总是不如自己理解和记忆来的简便和实用。我本身不是软件专业的学生,在编程方面只是个小菜鸟,如果写的东西很幼稚,各位大神看了还请不要见笑~

今天整理下和获取窗口句柄有关的函数

1)HWND WINAPI FindWindow(

__in_optLPCTSTR lpClassName,

__in_optLPCTSTR lpWindowName );

这个函数对顶层窗口进行搜索,如果找到窗口类名和窗口名匹配的窗口,则返回其句柄,否则返回NULL并影响GetLastError()的结果。

如果lpClassName 参数是由RegisterClass 或者RegisterClassEx函数创建的类atom,那么atom必须位于该参数的低位字中,而该参数的高位字必须为零,atom是windows系统维护的一种索引表,在以后会做相应的总结。如果lpClassName参数是字符串,则可以是使用RegisterClass或者RegisterClassEx函数创建的窗口类名或者windows预定义的窗口类名。

如果lpClassName参数为NULL,则函数只对第二个参数lpWindowName进行匹配,该参数为窗口名。如果lpWindowName为NULL,则任何窗口名都可匹配。

需要注意的是,该函数不能用于搜索子窗口,而且对字符串的匹配不区分大小写。

2)HWND WINAPI FindWindowEx(

  __in_optHWND hwndParent,
  __in_optHWND hwndChildAfter,
  __in_optLPCTSTR lpszClass,
  __in_optLPCTSTR lpszWindow
);
    这个函数是FindWindow的扩展,对由hwndParent指定的父窗口的子窗口进行搜索。函数从hwndChildAfter指定的子窗口的下一个子窗口第一个参数指定了父窗口句柄,如果该句柄为NULL,则函数将桌面视为父窗口,对桌面的子窗口进行搜索。第二个参数hwndChildAfter指定了一个子窗口,搜索从Z序中hwndChildAfter的下一个窗口开始搜索。而如果前两个参数皆为NULL,则函数作用与FindWindow相同。
返回值规则与FindWindow相同。

优质内容筛选与推荐>>
1、阿里云VPS搭建Hexo博客
2、实现 IEnumerable
3、IOSView翻转扭矩位移
4、linux系统安全及应用
5、3.字面量和散列


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn