Здравствуйте, P.loo.t, Вы писали:
PLT>Скажи, а как бы ты реализовал это? Я разберусь.
С хуками вечно какие-то проблемы — то права доступа, то крэш системы...
Мне в конце концов надоело и я сделал проще:
Цикл, в котором, скажем, раз в секунду вызывается GetForegroundWindow.
Если полученное значение отличается от предыдущего, значит открылось новое окно.
Дальше получаем заголовок окна, — GetWindowText, — и имя exe-шника, которому оно
принадлежит — GetWindowThreadProcessId/OpenProcess/GetModuleBaseName.
Вот и все решение.
Здравствуйте, P.loo.t, Вы писали:
PLT>Спасибо за исправленный код, сейчас попробую его протестить. И тебе совет: чуть терпимей к людям относись. Спроси ты меня об уровне моих познаний Visual я бы тебе честно ответил, что не ас и пальцы бы гнуть не стал. Пишу прогу не для рынка, а для себя. Если указываешь на ошибки, постарайся в следующий раз не опускать людей, не поддевать их о не знании. Всё впереди. Со всем уважением. Я только учусь, чего ты хотел от меня? Всё равно я её не брошу пока не добью.
Он вам это говорит, потому что вопросы у вас почти "почему оно не работает?".
т.е. обычный программист бы вначале посмотрел на то, о чем вас информирует ассерт. кстати, можете разобратся, что это такое и для чего они используются. assert(0) напишите в программе для примера .
а еще поставьте Visual Assist X. там легко находить инклуды для нужной ф-ии/класса и т.п. правой кнопкой — add include
затем он посмотрел бы в доку по crt(это библиотека, из которой fprintf) — как там ошибки обрабатываются.
и в конце узнал бы, что ассерт информирует о том, что файл не открылся и по какой причине.
Здравствуйте, okman, Вы писали:
O>Цикл, в котором, скажем, раз в секунду вызывается GetForegroundWindow. O>принадлежит — GetWindowThreadProcessId/OpenProcess/GetModuleBaseName. O>Вот и все решение
Спасибо за подсказку! Идея хорошая))) Скорее всего я так и сделаю!
Здравствуйте, npak, Вы писали:
N>PS: За такую проверку я бы тоже вынес "молодому талантливому программисту" моск. fclose должен вызываться только в том случае, если fopen вернул не NULL
Ты прав))) Я нашкодил! С проверками разобрался, прога больше не падает. Сейчас буду разбераться с причиной почему файл не создаёться!
Здравствуйте, swingus, кстати хоть убей не компилиться error C2061: синтаксическая ошибка: идентификатор "CBT_ACTIVATESTRUCT". Всяко разно пробовал менять — без результатно.