Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо