Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2009, 20:53   #1
ackiii
Подтвердите свой е-майл
 
Регистрация: 30.09.2009
Сообщений: 10
По умолчанию Путь к dll

Народ подскажите пожалуйста можно ли с помощью id потока определить путь к dll?
ackiii вне форума Ответить с цитированием
Старый 12.10.2009, 21:14   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
Смех

в принципе можно...если не скрыт поток, но методами NativeAPI можно и скрытый поймать...

вообще использую для поиска пути запущенных exe, но имхо для explorer-а показывает dll (normaliz.dll)
итак, подрубаете в uses - tlhelp32, вводите тип TMArray = array of TModuleEntry32:
Код:
function GetModulesListByProcessId(ProcessId:Cardinal): TModuleArray;
var hSnapshot: THandle;
    lpme: TModuleEntry32;

 procedure AddToList;
 begin
  SetLength(Result,High(Result)+2);
  Result[high(Result)]:=lpme;
 end;

begin
 SetLength(Result,0);
 hSnapshot:=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,ProcessId);
 //if hSnapshot=-1 then RaiseLastWin32Error; // нафиг
 lpme.dwSize:=SizeOf(lpme);
 if Module32First(hSnapshot,lpme) then
  begin
   AddToList;
   while Module32Next(hSnapshot,lpme) do
   AddToList;
  end;
end;

function get_path(pid: cardinal):string;
var i:integer;
    marr: TMArray;
begin
 marr:= GetModulesListByProcessId(Pid);
 result:='Null';
 for i:=0 to High(marr) do
  begin
   if Integer(marr[i].modBaseAddr)=$400000 then begin
    result:= marr[i].szExePath; // ТО ЧТО МЫ ИЩЕМ
    break;
   end;
  end
end;

ИСПОЛЬЗОВАНИЕ...
// находим пути запущенных по PID
get_path(ProcessId);
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 12.10.2009 в 21:19.
raxp вне форума Ответить с цитированием
Старый 12.10.2009, 21:49   #3
ackiii
Подтвердите свой е-майл
 
Регистрация: 30.09.2009
Сообщений: 10
По умолчанию

спасибо добрый человек. попробую
ackiii вне форума Ответить с цитированием
Старый 13.10.2009, 23:18   #4
ackiii
Подтвердите свой е-майл
 
Регистрация: 30.09.2009
Сообщений: 10
По умолчанию

raxp у меня прога выдает тока путь к самой себе, а к другим пишет Null
ackiii вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск Load.dll (бывшая Load.exe) в дереве проц-ов, Как запустить прогой на C# .dll-ку kapustin Общие вопросы .NET 10 23.09.2009 22:20
Путь к программе lacost Общие вопросы Delphi 1 13.02.2009 16:36
Путь StartMis Общие вопросы Delphi 3 03.10.2008 14:45
Путь к файлу Лубышев Общие вопросы Delphi 2 10.02.2008 21:13
Путь к фолдеру? MasterYoda HTML и CSS 1 09.08.2007 15:07