![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать имя файла запущенного приложения.
Uran © (2004-06-26 15:15:00)Уважаемые господа программисты помогите!! :)
Кароче нужно узнать имя файла запущенного приложения. А лучше если имена файлов всех запущщеных приложений на данный момент.
Пробую перебрать все окна с помощью EnumWindows. Смотрел функцию GetFileInformationByHandle котороая заполняет структуру BY_HANDLE_FILE_INFORMATION, но там нет даже сылки на имя файла , а только время , атрибуты и ещё чето. Может ещё какая есть? Если можно подскажите плиз.
СПАСИБА
infom (2004-07-05 12:15:00) [1]And me
Vetek (2004-07-05 12:04:00) [2]И мне, please vetek@xaker.ru
chp0k (2004-07-04 16:58:00) [3]Тоже очень хочетЦа хакую прогу, кому не жалко? :)
Игорь Шевченко (2004-06-26 21:33:00) [4]YuRock © (26.06.04 18:58)
whitefranz@hotmail.com, извиняюсь, думал, в сообщении будет. Лимит ящика 600-700 кило
YuRock (2004-06-26 18:59:00) [5]Если не хотите светить свой адрес - можете скинуть его на мой ящик - в ответе получите прогу.
YuRock (2004-06-26 18:58:00) [6]> Тогда делись
Ну мыло дайте какое-нибудь, а то куда ж я делиться то буду...
Игорь Шевченко (2004-06-26 18:50:00) [7]
> А вообще у меня есть классная прога такого плана (лучшая
> в своем роде, лучше всяких-там WinSighnt'ов).
И лучше всяких там Spy++ ? Тогда делись
Uran (2004-06-26 16:01:00) [8]Ага спасибо, теперь понятно =)
YuRock (2004-06-26 15:56:00) [9]> Я пока в программировании не силен не подскажешь вообще что такое поток и чем он отличается от процесса?
Процесс - это всего-лишь гловальный объект ядра, к которому привязано его адресное пространство, ресурсы, его потоки и т.д.
Поток (точнее - кодовый поток) - это набор команд, к-рые выполняет процессор. Вот и все. Винда просто ч-з определенные промежутки времени (еще зависит от приоритетов потоков) перебрасывает на проц потоки (по кругу).
Так что, в общем, поток и процесс - вещи вообще в принципе разные и сравнивать их нельзя...
Uran (2004-06-26 15:49:00) [10]У меня есть пару похожих прог, так что спасибо за предложение.
Uran (2004-06-26 15:47:00) [11]Не просто такая тема, что препод вуза сказал эту прогу через глобальные хуки сделать, вот я тут и сижу гружусь как это сделать. У меня тоже такая мысля была через некоторые промежутки обновлять список, но преппод стопудов забракует.
Я пока в программировании не силен не подскажешь вообще что такое поток и чем он отличается от процесса?
Спасиба друг!
YuRock (2004-06-26 15:45:00) [12]А вообще у меня есть классная прога такого плана (лучшая в своем роде, лучше всяких-там WinSighnt'ов).
Называется она "WinTrace". Она показывает и обновляет (синхронно) весь список процессов системы с разбитием каждого на его потоки и окна (в виде дерева).
Там много всяких полезностей - трассирова сообщений, получение стилей окон и т.д. В общем - очень полезная прога.
Можешь оставить мыло - я вышлю. Только без исходников вышлю - не обижайся :)
Да, она работает только под 2k и XP
YuRock (2004-06-26 15:40:00) [13]Ну, хук можно поставить с помощью ф-ции SetWindowsHookEx, да только он тут (по моему мнению) не поможет - они для несколько других целей нужны.
Вообще-то как-то (не занимался этой задачей) можно перехватывать запуск/закрытие процессов, но я бы советовал сделать просто, быстро и надежно:
например, по таймеру (скажем, с интервалом 1с.) обновлять список процессов. И все. Можно даже красиво - при обновлении не удалять все и читать заново, а вначале прочитать список, а затем, на основе сравнения с предыдущим списком, изменить его (если надо)
Uran (2004-06-26 15:32:00) [14]Ещё один вопрос если можно.
Мне надо сделать прогу на подобии WinSight но гораздо проще по интерфейсу. Я с хуками ещё на разбирался, если вас не затруднит может вы подскажите как создать хук чтоб следил за приложениями, и постоянно обновлял список запущенных приложений
Uran (2004-06-26 15:28:00) [15]Понятно =))
Uran (2004-06-26 15:27:00) [16]А lvProcesses - это че за тип переменной?
YuRock (2004-06-26 15:24:00) [17]Да, lvProcesses.Clear;убери - я забыл :)
YuRock (2004-06-26 15:22:00) [18]Не в ту сторону смотришь - не путай окна с процессами... Вот:
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;