Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Файловая система
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.10.2012, 14:54
corps666 corps666 вне форума
Прохожий
 
Регистрация: 02.09.2012
Сообщения: 9
Репутация: 10
По умолчанию LoadLibrary

Код:
HINSTANCE hdll = NULL;
hdll = LoadLibrary("DllMain.dll");
if (NULL == hdll) {
	// Не запущена
} else {
	// Запущена
}

lmikle: Пользуемся тегами!!!

Не работает выводит ошибку 22 и жалуется на hdll объявляю как переменную результат тот же.
Прошу помогите пожалуйста с данной проблемой.
Как сделать что бы данная функция работала? и какие библиотеки надо подключить если они нужны.

Последний раз редактировалось lmikle, 23.10.2012 в 17:26.
Ответить с цитированием
  #2  
Старый 21.10.2012, 15:12
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
var
  hDll: HMODULE;
begin
  hDll:=LoadLibrary('c:\Windows\System32\kernel32.dll');
  if hDll=0 then raise Exception.Create('!LoadLibrary');
  FreeLibrary(hDll);
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
corps666 (23.10.2012)
  #3  
Старый 23.10.2012, 09:56
corps666 corps666 вне форума
Прохожий
 
Регистрация: 02.09.2012
Сообщения: 9
Репутация: 10
По умолчанию

Код:
var
hDll: HMODULE;
begin

 hDll:=LoadLibrary('vorbisfile.dll');
 if hdll=0 then
 begin
 showmessage ('l1');
 end
 else
 begin
 showmessage ('12');
 end;
 end;

end.
К сожалению не совсем то что надо вышло.
Мне надо искать уже запущенные библиотеки в оп. и при наличии этой библиотеке писать следующее например сообщения.

Последний раз редактировалось lmikle, 23.10.2012 в 17:27.
Ответить с цитированием
  #4  
Старый 23.10.2012, 09:58
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

GetModuleHandle

Ты можешь изъясняться по человечески, ничерна не понатно что надо.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #5  
Старый 23.10.2012, 10:38
corps666 corps666 вне форума
Прохожий
 
Регистрация: 02.09.2012
Сообщения: 9
Репутация: 10
По умолчанию

Надо не запустить библиотеку, а проверить имеется ли он в оперативной памяти.
типо дополнительного подключения библиотеки уже из оп если hDll изменяется (процесс в него вгружается из оп) то он выполняет следующее действие если нет то продолжает работу.
Ответить с цитированием
  #6  
Старый 23.10.2012, 10:49
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Ну так GetModuleHandle, если библа не загружена - выведет INVALID_HANDLE_VALUE (DWORD(-1)), если есть, то вернет ее BaseAddress.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #7  
Старый 23.10.2012, 16:44
corps666 corps666 вне форума
Прохожий
 
Регистрация: 02.09.2012
Сообщения: 9
Репутация: 10
По умолчанию

а по точней можно? а то в интернете не нашел даже общих примеров. Так как данная команда многофункциональна.
Ответить с цитированием
  #8  
Старый 23.10.2012, 17:37
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от corps666
а по точней можно? а то в интернете не нашел даже общих примеров. Так как данная команда многофункциональна.
Чем это она многофункциональна?
Описание функции GetModuleHandle: оригинальное здесь, по-русски здесь.
Пример использования:
Код:
  if GetModuleHandle('kernel32.dll') = 0 then
  begin
    ShowMessage('Ошибка: '+SysErrorMessage(GetLastError));
  end else
  begin
    ShowMessage('Библиотека загружена в оп');
  end;
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
corps666 (23.10.2012)
  #9  
Старый 23.10.2012, 17:42
corps666 corps666 вне форума
Прохожий
 
Регистрация: 02.09.2012
Сообщения: 9
Репутация: 10
По умолчанию

Она с парой коментариев может выполнять набор функций.
К примеру поиск по ехе файлам сканирование библиотеки и тд.
Просто надо подключать дополнительную функцию (заменяет все функции диспетчера задач улучшенного от майкрософта).
К сожалению видит только системные библиотеки. Библиотеки не системные данная функция не замечает.
При этом ProccessExplorer видит библиотеку вполне.

Последний раз редактировалось corps666, 23.10.2012 в 17:56.
Ответить с цитированием
  #10  
Старый 23.10.2012, 17:57
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от corps666
Она с парой коментариев может выполнять набор функций.
К примеру поиск по ехе файлам сканирование библиотеки и тд.
Просто надо подключать дополнительную функцию (заменяет все функции диспетчера задач улучшенного от майкрософта).
К сожалению видит только системные библиотеки. Библиотеки не системные данная функция не замечает.
При этом ProccessExplorer видит библиотеку вполне.
http://bash.im/quote/393460
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение:
corps666 (23.10.2012)
  #11  
Старый 23.10.2012, 19:06
corps666 corps666 вне форума
Прохожий
 
Регистрация: 02.09.2012
Сообщения: 9
Репутация: 10
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Да конечно прикольно. Как расширить видимый функционал библиотек. Что бы не только системные библиотеки замечал.
Ответить с цитированием
  #12  
Старый 23.10.2012, 20:14
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Тебе перечислить загруженные в АП процесса библы чтоли надо?
EnumProcessModules, как использовать - ищем в Rндексе, Gугле.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #13  
Старый 23.10.2012, 23:08
corps666 corps666 вне форума
Прохожий
 
Регистрация: 02.09.2012
Сообщения: 9
Репутация: 10
По умолчанию

Нету ответа на этот вопрос, ни где к сожалению так как. Библиотека подключается не в оп, а в программу, а сама программа уже в оп.
Следовательно не просканировав процесс мы не сможем просконировать данную библиотеку.

Последний раз редактировалось corps666, 23.10.2012 в 23:32.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:21.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter