为什么我不能写:
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);
答案 0 :(得分:1)
从应用程序视图中,窗口句柄是唯一标识窗口的抽象值,另请参阅What is a Windows Handle?或Handle in Wikipedia。操作系统可能会以不同方式看到它,并将窗口句柄视为指向包含窗口信息的结构的指针。或者它可能会将窗口句柄视为数组的索引,或者看起来完全不同。但这取决于操作系统。
窗口标题不是唯一的,可以存在多个具有相同标题的窗口。
GetWindowThreadProcessId
需要准确了解哪个窗口可以正常工作,因此您无法将窗口标题传递给该函数,但您需要传递一个窗口句柄。
此外,cout << hwnd_value;
将不起作用,它只会打印指针值,而不是字符串。