информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медСтрашный баг в WindowsSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 700 с лишним git-серверов пострадало... 
 От повторного пришествия Шаи-Хулуда... 
 Крупный сбой Azure и других сервисов... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Полезная фенька - рулезный GetOpenFileName в ваших проектах ;-) 02.04.02 08:54  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
Народ! Может надо кому?
В MSDN есть статья некоего чела в рубрике C++ Q&A на тему как заюзать новые диалоговые окна открытия\сохранения файлов в стиле WinME\Win2k, и желательно без правки исходников.
Знаете - к примеру, в WinME открываем Блокнот, выбираем из меню "открыть" - и... грызём ногти от зависти ;-)
Там в этой статье говорилось о том, что всё не так просто - изменился формат структуры (она увеличилась на 3 32-битных параметра), передаваемой в эту функцию, и простым добавлением флага не обойтись.
Дык я решил Subj весьма просто - написал DLL, которая вешает Hook на вызов всех GetOpenFileNameA в любой DLL, загруженной в процесс, передавать нужно её ModuleBase (HInstance)). В частности, HInstance может быть и от моего .exe (400000H). ;-)
А в API Hook сидит код, который заводит новую структуру, суёт в неё старую, выставляет новый параметр размера структуры и алаверды!
А потом в старую структуру суёт полученные после вызова GetOpenFileName результаты. Билл Гейтс с Борландом с их новыми версиями компиляторов\библиотек пока отдыхают!
Более того, енто можно юзать к примеру в Clarion или ещё какой-нибудь среде разработки, где есть возможность подключать внешние DLL.В старые проекты придётся добавить максимум три строки ;-)
Десять строк на Delphi - использовал библиотеку JEDI и их объекты по API Hooking. Размер DLL - 80Kb. Могу дать исходники.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach