Чтобы получить хендл окна другой программы, зная только имя .exe файла, используйте функцию FindWindow. Пример на C++
HWND hwnd = FindWindow(NULL, L"Имя окна");
Если нужно найти окно по имени процесса, используйте EnumProcesses для получения всех процессов и OpenProcess для их идентификации.
Для определения, когда окно не в фокусе, используйте GetForegroundWindow и сравните его с вашим хендлом. Если они не совпадают, окно не активно.
Дополнительные функции: AttachThreadInput может помочь в управлении фокусом между потоками.