Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.034 c
4-1089136483
Гном1
2004-07-06 21:54
2004.08.15
Как получить доступ к панели задач


1-1091186987
Вика
2004-07-30 15:29
2004.08.15
пересечения диапазонов


10-1029155899
aserov
2002-08-12 16:38
2004.08.15
Проблема с COM


1-1090861230
AlexeyM
2004-07-26 21:00
2004.08.15
XP manifest


4-1088772281
Lin
2004-07-02 16:44
2004.08.15
Вопрос по DrawFrameControl





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский