用c ++编写的FindWindow

时间:2015-10-21 08:28:38

标签: c++ winapi findwindow

为什么我不能写:

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);

1 个答案:

答案 0 :(得分:1)

从应用程序视图中,窗口句柄是唯一标识窗口的抽象值,另请参阅What is a Windows Handle?Handle in Wikipedia。操作系统可能会以不同方式看到它,并将窗口句柄视为指向包含窗口信息的结构的指针。或者它可能会将窗口句柄视为数组的索引,或者看起来完全不同。但这取决于操作系统。

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

GetWindowThreadProcessId需要准确了解哪个窗口可以正常工作,因此您无法将窗口标题传递给该函数,但您需要传递一个窗口句柄。

此外,cout << hwnd_value;将不起作用,它只会打印指针值,而不是字符串。