Главная страница
    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.48 MB
Время: 0.036 c
6-1087459368
P@vel
2004-06-17 12:02
2004.08.15
Size Does Matter


14-1090946189
Кириешки
2004-07-27 20:36
2004.08.15
Улучшение внешнего вида программы


3-1090309302
AlexanderSK
2004-07-20 11:41
2004.08.15
Копирование данных из одного ClientDataSet в другой


14-1090964671
i-s-v
2004-07-28 01:44
2004.08.15
DirectX


3-1090393563
KIR
2004-07-21 11:06
2004.08.15
По FR: как оставить MasterData на той же стр., что и DetailData





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский