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

Вниз

Процессы в системе   Найти похожие ветки 

 
sesh   (2004-09-01 15:05) [0]

День добрый! Подскажите пож-ста как реализовать следующее:
Мне необходимо просмотреть все процессы в системе и если нахожу к примеру процесс winamp.exe чтоб сработало какое-нибудь мое действие.


 
Игорь Шевченко ©   (2004-09-01 15:16) [1]

http://www.schevchenko.net.ru/SRC/QuerySystemInformation_60.zip

Может, поможет...


 
Digitman ©   (2004-09-01 15:26) [2]


> Игорь Шевченко ©   (01.09.04 15:16) [1]


может, предложить автору "утренний" обсужденный код ? заодно и проверка и обкатка ?


 
Игорь Шевченко ©   (2004-09-01 15:42) [3]

Digitman ©   (01.09.04 15:26) [2]

Сергей, я не думаю, что в этом случае внедрение DLL окажется полезным, NtQuerySystemInformation неплохо справляется с получением списка процессов, а найти процесс по имени в том, списке, который реализован в коде по ссылке, не составит особого труда.


 
Digitman ©   (2004-09-01 15:55) [4]


> Игорь Шевченко ©   (01.09.04 15:42) [3]


я не в плане внедрения ... это - "побочный эффект" ... вместо вызова InjectLibrary() можно всандалить все что угодно .. главное - там используется банальнейший psapi, т.е. один из вариантов решения задачи


 
sesh   (2004-09-01 15:58) [5]

Спасибо, я нашел тут код один, вроде работает нормально, вот:
procedure GetProcessList(var sl:TStrings);
var
 pe:TProcessEntry32;
 ph, snap:THandle;
 mh:hmodule;
 procs:array[0..$fff] of dword;
 count, cm:cardinal;
 i:integer;
 ModName:array[0..max_path] of char;
begin
 sl.Clear;
 if Win32Platform = VER_PLATFORM_WIN32_WINDOWS then
begin    
 snap:=CreateToolhelp32Snapshot(th32cs_snapprocess, 0);
   if integer(snap)=-1 then
   begin
     exit;
   end else
   begin
     pe.dwSize:=sizeof(pe);
     if Process32First(snap, pe) then
     repeat
       sl.Add(string(pe.szExeFile));
     until not Process32Next(snap, pe);
   end;
 end
 else
 begin
   if not EnumProcesses(@procs, sizeof(procs), count) then
   begin
     exit;
   end;
   for i := 0 to count div 4 - 1 do
   begin
     ph:=OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,
                     false, procs[i]);
     if ph>0 then
     begin
       EnumProcessModules(ph, @mh, 4, cm);
       GetModuleFileNameEx(ph, mh, ModName, sizeof(ModName));
       sl.Add(string(ModName));
       CloseHandle(ph);
     end;
   end;
 end;
end;


 
Digitman ©   (2004-09-01 16:09) [6]


> sesh   (01.09.04 15:58) [5]


да, в общем и целом это приводит к заветной цели


 
Alex870   (2004-09-01 17:23) [7]

Во-во, а psapi работает только в NT.


 
GrayFace ©   (2004-09-01 17:30) [8]

Digitman ©   (01.09.04 15:26) [2]
может, предложить автору "утренний" обсужденный код ? заодно и проверка и обкатка ?

Дайте, plz, ссылку на ветку, в которой вы это обсуждали.


 
Digitman ©   (2004-09-01 17:34) [9]


> GrayFace ©   (01.09.04 17:30) [8]


извини, но это было сугубо частное обсуждение



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

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

Наверх




Память: 0.46 MB
Время: 0.025 c
6-1091112535
qwerty2
2004-07-29 18:48
2004.10.10
HTTP запрос с помощью ClientSocket


14-1095667120
Drakosha
2004-09-20 11:58
2004.10.10
множественное наследование


1-1095560171
Matveyev
2004-09-19 06:16
2004.10.10
Создание файлов ресурсов


4-1094639369
sid
2004-09-08 14:29
2004.10.10
Web камера и Delphi


1-1095779730
M-Alex
2004-09-21 19:15
2004.10.10
Timer





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