原文链接 -> 传送门
函数功能:
GetWindowText 函数将指定窗口标题栏的文本(如果存在)拷贝到一个缓存区。如果指定的窗口是一个控件,则拷贝的是控件的文本。不过 GetWindowText 不能获取其他应用程序中控件的文本。
API 函数原型:
注释:_In_ 说明该参数是输入的,_Out_ 说明该参数是输出的。
int WINAPI GetWindowText( _In_ HWND hWnd, _Out_ LPTSTR lpString, _In_ int nMaxCount );
参数解析:
|
参数 |
含义 |
|
hWnd |
指向包含文本的窗口或控件的句柄 |
|
lpString |
指定将接收文本的缓冲区的指针。如果字符串和缓冲区一样长或更长,则该字符串将被截断,并以一个空字符结尾 |
|
nMaxCount |
指定拷贝到缓冲区内的字符的最大数目,其中包含空字符。如果文本超过这个限制,则它会被截断 |
返回值:
1. 如果函数调用成功,则返回值为该字符串的长度,不包括结尾的空字符。如果窗口没有标题栏和文本,如果标题栏为空,或如果窗口或控件句柄无效,则返回值为零。获取有关错误的更多信息,请调用 GetLastError 函数。
2. 该函数不能获取在其他应用程序中编辑控件的文本。
备注:
1. 如果目标窗口属于当前进程,GetWindowText 函数会给指定的窗口或控件发送一条 WM_GETTEXT 消息。如果目标窗口属于其他进程,并且有一个窗口标题,则 GetWindowText 函数获取窗口的标题文本。如果窗口没有标题,则返回值为空字符串。此行为是设计使然。这使得如果拥有目标窗口的进程无响应,调用 GetWindowText 函数的应用程序不会无响应。然而,如果目标窗口无响应,并且它属于调用它的应用程序,GetWindowText 函数将导致调用它的应用程序无响应。
2. 为获取其他进程的一个控件的文本,请直接发送一条 WM_GETTEXT 消息,而不是调用 GetWindowText 函数。
需求:
|
Minimum supported client |
Windows 2000 专业版 [仅桌面应用程序] |
|
Minimum supported server |
Windows 2000 服务器版 [仅桌面应用程序] |
|
Header |
Winuser.h (包含于 Windows.h) |
|
Library |
User32.lib |
|
DLL |
User32.dll |
|
Unicode and ANSI names |
GetWindowTextW (Unicode) 和 GetWindowTextA (ANSI) |




