Excel表格网

excel获取窗口句柄(windows窗口句柄获取函数)

来源:www.0djx.com  时间:2022-11-27 19:42   点击:112  编辑:表格网  手机版

1. windows窗口句柄获取函数

FindWindow()函数就可以了 模块声明 Declare Function FindWindow Lib "user32 " Alias "FindWindowA " (ByVal lpClassName As Any, ByVal lpWindowName As String) As Long 然后,在调用时使用如下语句: hwndCalc = FindWindow(0&, "计算器 ") 这里的0&就表示忽略类名。需要注意的是FindWindow(0&, "计算器 ")和FindWindow( " ", "计算器 ")有两种完全不同的含义,前者表示忽略窗口的类,而后者表示窗口的类是个空串。类似的,我们也可以忽略标题而搜索指定的类。

如果找到了满足条件的窗口,这个函数返回该窗口的句柄,否则返回0。

2. windows句柄控制窗口

句柄无效通常是编程的错误,或是丢失或更改了某些系统文件。

句柄无效一般是dircetx错误,或者是丢失了某些动态连接库的DLL文件。

解决办法是重新下载一个directx9.0c,进行安装。如果还不行,就重装操作系统,这样做比较省事。

句柄实际上是一个数据,是一个Long (整长型)的数据。

句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等。

WINDOWS句柄有点象C语言中的文件句柄。

3. 怎么获取窗口句柄

例如:高级表格1.取窗口句柄()这样就取到高级表格的窗口句柄(任何组件都可看作是一种窗口,这个取到的是高级表格句柄,不是表格所在窗口的句柄)----------------------------------------调用格式:〈整数型〉对象.取窗口句柄()-系统核心支持库->窗口英文名称:GetHWnd取出本窗口或窗口组件的窗口句柄(即HWND)。本命令为高级对象成员命令。操作系统需求:Windows

4. c语言获取句柄

VB 中 有句柄 hwnd 的控件,就可以通过 API 函数操作 比如 commandbutton,picturebox 没有句柄 hwnd 的控件就不可以 比如 label 通过 API 获取 commandbutton 的Caption Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long Private Sub Command1_Click() Dim i As Long Dim a As String i = GetWindowTextLength(Command1.hwnd) a = String$(i + 1, 0) GetWindowText Command1.hwnd, a, Len(a) Print a End Sub 显示的就是 Command1 的 属性 Caption 值: Command1

5. 通过窗口句柄获取所有控件

先用FindWindow得到窗口句柄

再用GetDlgItem 得到 该窗口中 已知控件ID的控件的句柄(控件ID用spy++或spy4win得到)

建议你去玩一下csdn上的大神ccrun 做的spy4win 比spy++可强多了 例子中就用了spy4win 自动生成 delphi 查找窗口语句

6. c++ 获取窗口句柄

dim hwnd as int32=GetParent(hchild) hwnd 就是hchild的父窗口句柄 如果要获得最顶级父窗口,可以利用循环 dim hwnd as int32 do hwnd=GetParent(hchild) if hwnd=0 then exit do endif hchild=hwnd loop 循环结束后,hchild就是顶级父窗口的句柄。

7. 获取当前窗口句柄的函数

VB中findwindow()函数使用:VB声明 Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 说明 寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行中vb执行程序的一部分。

获得句柄后,可用api函数GetWindowText取得这个窗口的名称;该名也是应用程序的标题) 返回值 Long,找到窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError 参数表 参数 类型及说明 lpClassName String,指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类 lpWindowName String,指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收任何窗口标题 注解 很少要求同时按类与窗口名搜索。为向自己不准备参数传递一个零,最简便的办法是传递vbNullString常数 示例 Dim hw&, cnt& Dim rttitle As String * 256 hw& = FindWindow("ThunderRT5Main", vbNullString) ' ThunderRTMain under VB4 cnt = GetWindowText(hw&, rttitle, 255) MsgBox Left$(rttitle, cnt), 0, "RTMain title"

8. win32获取窗口句柄

EnumWindows 枚举窗体

另外,Win32 API中还有一个FindWindowEx,它非常适合寻找子窗口。

从第二次调用以后,FindWindowEx第二个参数要传上次窗体句柄

9. 获取程序句柄

The GetProcessHandleFromHwnd function retrieves a process handle from a window handle. HANDLE WINAPI GetProcessHandleFromHwnd( HWND hwnd, ); 这个函数通过窗口句柄获得进程句柄。有了进程句柄,PID是不是就知道怎么获得了?什么?

不知道?

那我告诉你,GetProcessId可以通过进程句柄获得进程ID: DWORD WINAPI GetProcessId( __in HANDLE Process );

10. 获取浏览器窗口句柄

1.针对各类客户端软件界面元素进行各种操作,2.针对网页浏览器的界面元素进行各种操作和傻瓜式数据采集,3.针对各种办公软件的文档进行操作,4.基于图像、文本、OCR 等识别方式对界面元素进行各种操作,5.对应用广泛的已有系统进行操作,6.基于句柄对窗口、进程进行操作,7.规模庞大的基础功能8.多种能力扩展方案。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
用户名: 验证码:点击我更换图片