Изменить ресурсные строки во время выполненияDelphi , Файловая система , РесурсыИзменить ресурсные строки во время выполнения
Оформил: DeeCo uses Consts; procedure TForm1.Button1Click(Sender: TObject); begin InputBox('Test', 'Enter something', 'Test'); end; procedure HookResourceString(rs: PResStringRec; newStr: PChar); var oldprotect: DWORD; begin VirtualProtect(rs, SizeOf(rs^), PAGE_EXECUTE_READWRITE, @oldProtect); rs^.Identifier := Integer(newStr); VirtualProtect(rs, SizeOf(rs^), oldProtect, @oldProtect); end; const NewOK: PChar = 'New Ok'; NewCancel: PChar = 'New Cancel'; initialization HookResourceString(@SMsgDlgOK, NewOK); HookResourceString(@SMsgDlgCancel, NewCancel); end. Программный код на языке Delphi изменяет строковые ресурсы в реальном времени. Он использует функцию hook Вот шаг за шагом, что код делает:
Константы В секции инициализации процедура Обратите внимание, что изменение строковых ресурсов в реальном времени может иметь неожиданные последствия и привести к неожиданным поведениям или краху, если не сделано правильно. Кроме того, это код работает только на платформе Windows, где Delphi запущен под native API Windows. В статье описывается способ изменения ресурсных строк программы Delphi во время выполнения с помощью процедуры HookResourceString и использования функции VirtualProtect для изменения защиты страниц памяти. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |