Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

Как узнать имя файла запущенного приложения.   Найти похожие ветки 

 
Uran   (2004-06-26 15:15) [0]

Уважаемые господа программисты помогите!! :)
Кароче нужно узнать имя файла запущенного приложения. А лучше если имена файлов всех запущщеных приложений на данный момент.
Пробую перебрать все окна с помощью EnumWindows. Смотрел функцию GetFileInformationByHandle котороая заполняет структуру BY_HANDLE_FILE_INFORMATION, но там нет даже сылки на имя файла , а только время , атрибуты и ещё чето. Может ещё какая есть? Если можно подскажите плиз.
СПАСИБА


 
YuRock ©   (2004-06-26 15:22) [1]

Не в ту сторону смотришь - не путай окна с процессами... Вот:

Uses tlhelp32;
//...
procedure LoadProcesses;
var
 hSnap: THandle;
 pe: TProcessEntry32;
begin
 lvProcesses.Clear;
 hSnap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS or TH32CS_SNAPTHREAD, 0);
 try
   pe.dwSize := SizeOf(TProcessEntry32);
   if Process32First(hSnap, pe) then repeat
     ShowMessage(String(pe.szExeFile));
   until not Process32Next(hSnap, pe);
 finally
   CloseHandle(hSnap);
 end;
end;


 
YuRock ©   (2004-06-26 15:24) [2]

Да, lvProcesses.Clear; убери - я забыл :)


 
Uran   (2004-06-26 15:27) [3]

А lvProcesses - это че за тип переменной?


 
Uran   (2004-06-26 15:28) [4]

Понятно =))


 
Uran   (2004-06-26 15:32) [5]

Ещё один вопрос если можно.
Мне надо сделать прогу на подобии WinSight но гораздо проще по интерфейсу. Я с хуками ещё на разбирался, если вас не затруднит может вы подскажите как создать хук  чтоб следил за приложениями, и постоянно обновлял список запущенных приложений


 
YuRock ©   (2004-06-26 15:40) [6]

Ну, хук можно поставить с помощью ф-ции SetWindowsHookEx, да только он тут (по моему мнению) не поможет - они для несколько других целей нужны.

Вообще-то как-то (не занимался этой задачей) можно перехватывать запуск/закрытие процессов, но я бы советовал сделать просто, быстро и надежно:

например, по таймеру (скажем, с интервалом 1с.) обновлять список процессов. И все. Можно даже красиво - при обновлении не удалять все и читать заново, а вначале прочитать список, а затем, на основе сравнения с предыдущим списком, изменить его (если надо)


 
YuRock ©   (2004-06-26 15:45) [7]

А вообще у меня есть классная прога такого плана (лучшая в своем роде, лучше всяких-там WinSighnt"ов).

Называется она "WinTrace". Она показывает и обновляет (синхронно) весь список процессов системы с разбитием каждого на его потоки и окна (в виде дерева).

Там много всяких полезностей - трассирова сообщений, получение стилей окон и т.д. В общем - очень полезная прога.

Можешь оставить мыло - я вышлю. Только без исходников вышлю - не обижайся :)
Да, она работает только под 2k и XP


 
Uran   (2004-06-26 15:47) [8]

Не просто такая тема, что препод вуза сказал эту прогу через глобальные хуки сделать, вот я тут и сижу гружусь как это сделать. У меня тоже такая мысля была через некоторые промежутки обновлять список, но преппод стопудов забракует.
Я пока в программировании не силен не подскажешь вообще что такое поток и чем он отличается от процесса?

Спасиба друг!


 
Uran   (2004-06-26 15:49) [9]

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


 
YuRock ©   (2004-06-26 15:56) [10]

> Я пока в программировании не силен не подскажешь вообще что такое поток и чем он отличается от процесса?

Процесс - это всего-лишь гловальный объект ядра, к которому привязано его адресное пространство, ресурсы, его потоки и т.д.

Поток (точнее - кодовый поток) - это набор команд, к-рые выполняет процессор. Вот и все. Винда просто ч-з определенные промежутки времени (еще зависит от приоритетов потоков) перебрасывает на проц потоки (по кругу).

Так что, в общем, поток и процесс - вещи вообще в принципе разные и сравнивать их нельзя...


 
Uran   (2004-06-26 16:01) [11]

Ага спасибо, теперь понятно =)


 
Игорь Шевченко ©   (2004-06-26 18:50) [12]


> А вообще у меня есть классная прога такого плана (лучшая
> в своем роде, лучше всяких-там WinSighnt"ов).


И лучше всяких там Spy++ ? Тогда делись


 
YuRock ©   (2004-06-26 18:58) [13]

> Тогда делись

Ну мыло дайте какое-нибудь, а то куда ж я делиться то буду...


 
YuRock ©   (2004-06-26 18:59) [14]

Если не хотите светить свой адрес - можете скинуть его на мой ящик - в ответе получите прогу.


 
Игорь Шевченко ©   (2004-06-26 21:33) [15]

YuRock ©   (26.06.04 18:58)

whitefranz@hotmail.com, извиняюсь, думал, в сообщении будет. Лимит ящика 600-700 кило


 
chp0k   (2004-07-04 16:58) [16]

Тоже очень хочетЦа хакую прогу, кому не жалко? :)


 
Vetek   (2004-07-05 12:04) [17]

И мне, please    vetek@xaker.ru


 
infom ©   (2004-07-05 12:15) [18]

And me



Страницы: 1 вся ветка

Текущий архив: 2004.08.15;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 2.013 c
3-1089967516
Trofimov
2004-07-16 12:45
2004.08.15
Экспорт из FastReport


8-1086150528
крот
2004-06-02 08:28
2004.08.15
Splitter


1-1091185261
Фагот
2004-07-30 15:01
2004.08.15
Завершение программы


14-1090481423
CHES
2004-07-22 11:30
2004.08.15
пример использования интерфейсов


1-1091201026
DimonNew
2004-07-30 19:23
2004.08.15
Где почитать про службы на русском