在 C++ 中查找窗口
FindWindow in c++
为什么我不能只写:
GetWindowThreadProcessId("Name of Window", &PID);
而不是:
HWND Name = FindWindow(("Name of Window", NULL));
GetWindowThreadProcessId(Name, &PID);
句柄函数有什么作用?比如,如果 HWND 没有什么特别之处,如果它只是存储一个字符串,为什么不直接使用 "string",那么它存储什么?
因为如果我这样做:
cout << Name << endl;
它给出了一个字符串 ???
我在想是不是存储函数:
GetWindowThreadProcessId(FindWindow(("Name"), NULL)), &PID);
从应用程序的角度来看,window 句柄是唯一标识 window 的抽象值,另请参见 What is a Windows Handle? or Handle in Wikipedia。操作系统可能会以不同的方式看待它,并将 window 句柄视为指向包含 window 信息的结构的指针。或者它可能会将 window 句柄视为数组的索引,或者完全不同的东西。但这取决于操作系统。
一个 window 标题不是唯一的,多个 windows 可以存在相同的标题。
GetWindowThreadProcessId
需要确切地知道在哪个 window 上工作,所以你不能将 window 标题传递给函数,但你需要传递 window手柄。
此外,cout << hwnd_value;
将不起作用,它只会打印一个指针值,而不是字符串。
为什么我不能只写:
GetWindowThreadProcessId("Name of Window", &PID);
而不是:
HWND Name = FindWindow(("Name of Window", NULL));
GetWindowThreadProcessId(Name, &PID);
句柄函数有什么作用?比如,如果 HWND 没有什么特别之处,如果它只是存储一个字符串,为什么不直接使用 "string",那么它存储什么?
因为如果我这样做:
cout << Name << endl;
它给出了一个字符串 ???
我在想是不是存储函数:
GetWindowThreadProcessId(FindWindow(("Name"), NULL)), &PID);
从应用程序的角度来看,window 句柄是唯一标识 window 的抽象值,另请参见 What is a Windows Handle? or Handle in Wikipedia。操作系统可能会以不同的方式看待它,并将 window 句柄视为指向包含 window 信息的结构的指针。或者它可能会将 window 句柄视为数组的索引,或者完全不同的东西。但这取决于操作系统。
一个 window 标题不是唯一的,多个 windows 可以存在相同的标题。
GetWindowThreadProcessId
需要确切地知道在哪个 window 上工作,所以你不能将 window 标题传递给函数,但你需要传递 window手柄。
此外,cout << hwnd_value;
将不起作用,它只会打印一个指针值,而不是字符串。