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

Вниз

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

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

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

Наверх





Память: 0.47 MB
Время: 0.04 c
6-1091084087
Kurtevich
2004-07-29 10:54
2004.10.10
вопрос про порты


4-1094818437
*Pavel
2004-09-10 16:13
2004.10.10
Странности чтения с СОМ порта


1-1095746557
panov
2004-09-21 10:02
2004.10.10
Горячие клавиши в IDE.


14-1095777403
}|{yk
2004-09-21 18:36
2004.10.10
Не надо пожалуйста любых обвинений


3-1094728910
Heretic
2004-09-09 15:21
2004.10.10
По поводу процедуры "BeforePost" в Ttable





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