В общем задача такая, что мне нужно проверить не перекрывает ли какое-нибудь окно моё приложение. Для этого я использую EnumDesktopWindows, в коллбеке которой проверяю не перекрывает ли какое-нибудь окно моё приложение. Заметил, что если открыть окно поиска в Windows 10 (win + s), то коллбек не вызывается для окна поиска. Вот пример тестового кода:
BOOL CALLBACK MyCallback(HWND hwnd, LPARAM lParam)
{
wchar_t strText[256];
GetClassName(hwnd, strText, 256);
wcout << strText << endl;
if (wcscmp(strText, L"SearchPane") == 0)
{
wcout << L"***** DONE *****" << endl;
return FALSE;
}
return TRUE;
}
int main()
{
Sleep(6000);
::EnumDesktopWindows(nullptr, MyCallback, NULL);
}
Запускаю приложение, в течение 6 секунд жму Win + S и жду пока приложение отработает. В итоге "DONE" не печатается и в списке классов окон нет окна с классом SearchPane. Хотя утилита inspect.exe (из Windows kits) находит (ей я и узнал, что имя класса этого окна SearchPane).
Пробовал добавить в манифест приложения <disableWindowFiltering>true</disableWindowFiltering>
Но не помогло, хотя, не исключаю, что неправильно пробовал добавить.
Может знает кто, как заставить мой коллбек отрабатывать и для окна поиска?
Как можно определить в Makefile, под какую ОС компилируется программа? Желательно знать, хотя бы, в пределах IOS/Android/Windows/LinuxХотелось бы иметь общий...
Подскажите библиотеку-браузер для java, которая может отрабатывать javascriptИли возможность взаимодействия java с существующим браузером