作为一名前锋,我对windows API非常不熟悉。 我试图了解有关不同窗口的信息,所以我在ATOM
从Windows窗口,我试图调用GetClassInfo
,但它每次我打电话时失败。 我正在试图查看一个Untitled - Notepad
窗口,我打开了一边。 这是我正在使用的代码,我不知道是否不正确调用从我没有真正拥有的ATOM的GetClassInfo,或者如果有其他事情正在进行。 我只是想读出有关窗口属性的信息。 这里是我现在的代码:
#include <iostream> #include <string> #include <Windows.h> int main(int argc, _TCHAR* argv[]) { char* window_name = "Untitled - Notepad"; unsigned int window_name_length = strlen(window_name) + 1; wchar_t* transformed_window_name = new wchar_t[window_name_length]; unsigned int number_of_characters_transformed; mbstowcs_s(&number_of_characters_transformed, transformed_window_name, window_name_length, window_name, window_name_length); HWND handle_to_window = FindWindow(NULL, transformed_window_name); WINDOWINFO window_info; if (!GetWindowInfo(handle_to_window, &window_info)) { std::cout << "GetWindowInfo failed with error: " << GetLastError() << std::endl; system("PAUSE"); exit(1); } LPTSTR my_atom_lptstr = MAKEINTATOM(window_info.atomWindowType); HINSTANCE hinstance_to_window = (HINSTANCE)GetWindowLong(handle_to_window, GWL_HINSTANCE); WNDCLASS my_wnd_class; if (!GetClassInfo(hinstance_to_window, my_atom_lptstr, &my_wnd_class)) { std::cout << "GetClassInfo failed with error: " << GetLastError() << std::endl; system("PAUSE"); exit(1); } /* learn info from my_wnd_class */ return 0; }
我得到错误1411这是ERROR_CLASS_DOES_NOT_EXIST,但我不知道为什么。