|
#1
|
|||
|
|||
LoadLibrary
Код:
HINSTANCE hdll = NULL; hdll = LoadLibrary("DllMain.dll"); if (NULL == hdll) { // Не запущена } else { // Запущена } lmikle: Пользуемся тегами!!! Не работает выводит ошибку 22 и жалуется на hdll объявляю как переменную результат тот же. Прошу помогите пожалуйста с данной проблемой. Как сделать что бы данная функция работала? и какие библиотеки надо подключить если они нужны. Последний раз редактировалось lmikle, 23.10.2012 в 17:26. |
#2
|
||||
|
||||
Код:
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
|
|||
|
|||
Код:
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
|
||||
|
||||
GetModuleHandle
Ты можешь изъясняться по человечески, ничерна не понатно что надо. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
|||
|
|||
Надо не запустить библиотеку, а проверить имеется ли он в оперативной памяти.
типо дополнительного подключения библиотеки уже из оп если hDll изменяется (процесс в него вгружается из оп) то он выполняет следующее действие если нет то продолжает работу. |
#6
|
||||
|
||||
Ну так GetModuleHandle, если библа не загружена - выведет INVALID_HANDLE_VALUE (DWORD(-1)), если есть, то вернет ее BaseAddress.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#7
|
|||
|
|||
а по точней можно? а то в интернете не нашел даже общих примеров. Так как данная команда многофункциональна.
|
#8
|
||||
|
||||
Цитата:
Описание функции GetModuleHandle: оригинальное здесь, по-русски здесь. Пример использования: Код:
if GetModuleHandle('kernel32.dll') = 0 then begin ShowMessage('Ошибка: '+SysErrorMessage(GetLastError)); end else begin ShowMessage('Библиотека загружена в оп'); end; |
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
corps666 (23.10.2012)
|
#9
|
|||
|
|||
Она с парой коментариев может выполнять набор функций.
К примеру поиск по ехе файлам сканирование библиотеки и тд. Просто надо подключать дополнительную функцию (заменяет все функции диспетчера задач улучшенного от майкрософта). К сожалению видит только системные библиотеки. Библиотеки не системные данная функция не замечает. При этом ProccessExplorer видит библиотеку вполне. Последний раз редактировалось corps666, 23.10.2012 в 17:56. |
#10
|
||||
|
||||
Цитата:
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
corps666 (23.10.2012)
|
#11
|
|||
|
|||
Цитата:
|
#12
|
||||
|
||||
Тебе перечислить загруженные в АП процесса библы чтоли надо?
EnumProcessModules, как использовать - ищем в Rндексе, Gугле. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#13
|
|||
|
|||
Нету ответа на этот вопрос, ни где к сожалению так как. Библиотека подключается не в оп, а в программу, а сама программа уже в оп.
Следовательно не просканировав процесс мы не сможем просконировать данную библиотеку. Последний раз редактировалось corps666, 23.10.2012 в 23:32. |