根据PID取窗体句柄

本文介绍了如何在VB中利用API函数FindWindow、GetParent等获取指定进程PID对应的窗口句柄,并进行窗口操作,如设置父窗口、获取线程ID等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. Option Explicit
  2. 'FindWindow寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行中vb执行程序的一部分。获得句柄后,可用api函数GetWindowText取得这个窗口的名称;该名也是应用程序的标题)
  3. '返回值
  4. 'Long,找到窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError
  5. '参数表
  6. '参数 类型及说明
  7. 'lpClassName String,指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类
  8. 'lpWindowName String,指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收任何窗口标题
  9. ' m 注解
  10. '很少要求同时按类与窗口名搜索。为向自己不准备参数传递一个零,最简便的办法是传递vbNullString常数
  11. Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
  12.                           (ByVal lpClassName As Long, _
  13.                           ByVal lpWindowName As Long) _
  14.                           As Long
  15. 'GetParent判断指定窗口的父窗口
  16. '返回值
  17. 'Long,父窗口的句柄。如窗口没有父,或遇到错误,则返回零。会设置GetLastError
  18. '参数表
  19. '参数 类型及说明
  20. 'hwnd Long,欲测试的窗口的句柄
  21. Private Declare Function GetParent Lib "user32" (ByVal hwnd As LongAs Long
  22. 'SetParent指定一个窗口的新父(在vb里使用:利用这个函数,vb可以多种形式支持子窗口。例如,可将控件从一个容器移至窗体中的另一个。用这个函数在窗体间移动控件是相当冒险的,但却不失为一个有效的办法。如真的这样做,请在关闭任何一个窗体之前,注意用SetParent将控件的父设回原来的那个)
  23. '返回值
  24. 'Long,前一个父窗口的句柄
  25. '参数表
  26. '参数 类型及说明
  27. 'hWndChild Long,子窗口的句柄
  28. 'hWndNewParent Long,hWndChild的新父
  29. '注解
  30. '可用这个函数在运行期将vb控件置入容器控件内部(比如将一个按钮设成图象或窗体控件的子窗口),或者将控件从一个容器控件移至另一个。控件移至另一个父后,它的位置将由新父的坐标系统决定。这样一来,有必要重新规定控件的位置,使其能在目标位置显示出来
  31. Private Declare Function SetParent Lib "user32" _
  32.                   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值