Форум: "Основная";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
ВнизКак распознать COM? Найти похожие ветки
← →
kingdom (2002-11-22 18:18) [0]Задача: На вход дается имя файла (exe или dll)
Вопрос: Как определить является ли файл COM сервером?
← →
Marcus (2002-11-22 18:20) [1]hLib := LoadLibrary("test.dll");
if (GetProcAddress(hLib, "DllRegisterServer") <> nil) then
IsComServer := true
← →
kingdom (2002-11-22 18:40) [2]>Marcus
К сожалению на EXE это не действует!
← →
kingdom (2002-11-25 12:26) [3]>To All
Видимо нельзя :((
вот облом!
← →
Fantasist (2002-11-25 17:59) [4]
> >To All
> Видимо нельзя :((
Ну, чисто теоретически, возможно перехватить вызов API функции CoRegisterClassObject. Потом запускаешь exe и если эта функция вызывается, то почти наверняка это OLE сервер.
← →
Fantasist (2002-11-25 18:05) [5]Можно еще просто по тексту ехе-шника поискать эту функцию. Часто она там есть, но может оказаться, что он вызывает эту функцию из одной из своих подгружаемых библиотек.
← →
Marcus (2002-11-25 18:13) [6]> >To All
> Видимо нельзя :((
Есть еще способ, но только если сервер зарегистрирован на машине: открыть раздел
HKEY_CLASSES_ROOT\AppID\server.exe
Если он есть, server.exe - COM сервер. В этом разделе живет параметр AppID, по которому можно дальше найти подробную инфу о сервере.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c