Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование Microsoft Antivirus API 
:(
    Опции темы
veterskv
Дата 22.6.2015, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 22.6.2015

Репутация: нет
Всего: нет



тут и тут, собственно, сама тема, но они закрыты...

и два вопроса по ней, вернее одно замечание и один вопрос
замечание: в строке 243 кода 
это
Код

TComObjectFactory.Create(ComServer, TMsoTest, Class_MsoTest,  
   'MsoTest', '', ciMultiInstance, tmApartment);

меняем на это
Код

TMSOAvFactory.Create(ComServer, TMsoTest, Class_MsoTest,  
   'MsoTest', '', ciMultiInstance, tmApartment);

и получаем библиотеку.... что и получилось, и ее даже удалось зарегистрировать...

а теперь вопрос (очень надеюсь на помощь). Как эту библиотеку использовать теперь в консольном приложении (собственно использовать хочу функцию Scan, которая описывается в umsoavtest.pas кода по ссылке) c передаваемым параметром "строка_путь_к_файлам".
Что у меня не получается... хочу хоть как-то увидеть, что функцию возможно использовать...
Код

program AVConsol;

{$APPTYPE CONSOLE}

uses
SysUtils, Windows,
Messages,
Variants,
Classes,
Graphics,
Controls,
System,
Forms,
Dialogs,
WinSock,
StdCtrls,ExtActns, ShellAPI;

var 
hndDLLHandle: THandle;

//function Scan(pmsoavinfo: PChar): HResult; stdcall; external 'AVapi.dll'; 
//{$R *.DFM}

begin
hndDLLHandle := LoadLibrary('AVapi.dll');
if LoadLibrary('AVapi.dll') <> 0 then
begin
   if addr ( getProcAddress ( hndDLLHandle, 'Scan' ) ) <> nil then
      begin
            if addr ( func_scan ) <> nil then showMessage ( 'Функция найдена.' );
      end;
   else showMessage ( 'Функция не найдена.' );
end
else MessageBox(GetForegroundWindow, 'AVapi.dll не загружена.', nil, $1010);

end.

... но не получается
Спасибо.

Это сообщение отредактировал(а) veterskv - 24.6.2015, 16:57
PM MAIL   Вверх
veterskv
Дата 24.6.2015, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 22.6.2015

Репутация: нет
Всего: нет



открыла эту dll far-ом.... и не обнаружила там необходимую мне ф-ю Scan

народ.... может есть другие методы использовать ее?
PM MAIL   Вверх
Poseidon
Дата 25.6.2015, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Не надо использовать библиотеку. Эта msoavtest.dll дана как пример использования кода, который в модуле msoav. Разбертесь что там к чему и используйте этот пример сразу в своем приложении. Вот тут более детально описан этот код. 


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
veterskv
Дата 25.6.2015, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 22.6.2015

Репутация: нет
Всего: нет



спасибо за отклик smile 
все-таки уточню (лучше перебдеть, чем недобдеть)... т.е. в мое консольное приложение нужно взять из этого кода в мое консольное приложение только то, что касается функции Scan?! и всё??? smile 
спасибо)
PM MAIL   Вверх
Poseidon
Дата 26.6.2015, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Основная работа ведется в модуле msoav. Он нам нужен целиком и как есть (возможно с некаторыми правками, код уже считается устаревшим). В msoav, по сути, все крутится вокруг интерфейса IOfficeAntiVirus, который содержит только один метод - Scan. Этот интерфейст и есть то, что нам надо. 

Теперь изучаем внимательно umsoavtest. В этом модуле описано как конкретно пользоваться интерфейсом IOfficeAntiVirus. Показано как создать класс [TMSOTest] на основе этого интерфейса и что делать в Scan этого класса. Вам надо взять код из umsoavtest и внести его в свое приложение. Придется точно так же создать класс на основе IOfficeAntiVirus. Точно так же (возможно с правками) описать Scan этого класса и использовать его по мере надобности. Действовать нужно по алгоритму, описанному по ссылке выше:
Цитата

 IE and MS Office implement the antivirus component as follows:

    1. Obtain the list of all the installed antivirus components registered as supporting the MSOfficeAntiVirus component category.
    2. Launch the installed components.
    3. Query for the IOfficeAntiVirus interface.
    4. Call the IOfficeAntiVirus.Scan method to obtain all the installed components.
    5. Continue to open the file after the virus scan, regardless of the HRESULT value. The antivirus software warns a user if a file has a known virus but opens the file after the warning. It is up to the user to take action concerning the warning.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1110 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.