У меня есть exe-файл, скомпилированный с Delphi 6 под Windows XP, который использует комбинацию EnumWindows и GetWindowText, чтобы найти окно (не принадлежащее самому exe-файлу) с определенным заголовком.
Поведение такоеожидается под Windows XP.Однако на компьютерах Vista это не работает.
Поскольку упомянутая версия Delphi не работает в Vista, я не могу изменить и проверить это напрямую.
Однако я попробуюсоздать модифицированный exe-файл на компьютере XP, который выводит некоторые дополнительные данные и скопировать их на компьютер Vista.
Я просто хотел бы спросить, есть ли у кого-нибудь какая-либо информация о том, существуют ли конкретные проблемы, связанные с exe-файлами, скомпилированными сDelphi 6, работающий в Vista, относительно EnumWindows / GetWindowText.
В exe используются EnumWindows и GetWindowText, чтобы найти дескриптор определенного окна, чтобы затем проанализировать заголовок этого окна в событии таймера.Заголовок окна - это имя приложения плюс имя файла, открытого в этом приложении (если какой-либо файл открыт).Delphi exe анализирует / использует это имя файла, что-то делает с ним и ведет себя определенным образом.
В Vista ожидаемое поведение не появляется, поэтому я предполагаю, что дескриптор окна не найден, потому что GetWindowText каким-то образомне вернуть текст.Другая причина, конечно, может заключаться в том, что EnumWindows не работает должным образом, и дескриптор окна, которое ищет exe, никогда не отправляется в EnumWindowsProc.