FindWindow in c++

FindWindow in c++

本文关键字:c++ in FindWindow      更新时间:2023-10-16

为什么我不能直接写:

GetWindowThreadProcessId("Name of Window", &PID);

代替:

HWND Name = FindWindow(("Name of Window", NULL));
GetWindowThreadProcessId(Name, &PID);

Handle函数是做什么的?比如,如果HWND没有什么特别之处,如果它只是存储一个字符串,为什么不直接使用"string",那么它存储什么呢?

因为如果我这样做:

cout << Name << endl;

它给出一个字符串??

我在想它是否存储一个函数:

GetWindowThreadProcessId(FindWindow(("Name"), NULL)), &PID);

从应用程序视图来看,窗口句柄是唯一标识窗口的抽象值,参见什么是窗口句柄?或者在维基百科中的Handle。操作系统可能会以不同的方式看待它,并将窗口句柄视为指向带有窗口信息的结构体的指针。或者它可能将窗口句柄视为数组的索引,或者完全不同的东西。但这取决于操作系统。

一个窗口的标题不是唯一的,多个窗口可以以相同的标题存在。

GetWindowThreadProcessId需要确切地知道在哪个窗口上工作,所以你不能传递窗口标题给函数,但你需要传递一个窗口句柄。

此外,cout << hwnd_value;不会工作,它只会打印一个指针值,而不是字符串。