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

Вниз

GetModuleFileNameEx   Найти похожие ветки 

 
SpyBoy ©   (2006-01-16 17:24) [0]


procedure GetProcessList(sl:Tstrings);
var

 pe:TProcessEntry32;
 ph, snap:THandle;//дескрипторы процесса и снимка
 mh:hmodule;//дескриптор модуля
 procs:array[0..$fff] of dword;//массив для хранения дескрипторов процессов
 count, cm:cardinal;//количество процессов
 q,i:integer;
 ModName:array[0..max_path] of char;//имя модуля
begin

sl.Clear;
 if Win32Platform = VER_PLATFORM_WIN32_WINDOWS then begin //если это Win9x
   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 //Если WinNT/2000/XP
   if not EnumProcesses(@procs, sizeof(procs), count) then
   begin
     exit;
   end;
   for i := 0 to count  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));

       if string(ModName)="E:\585.exe" then   l=true else l=false; ///////////-???

       sl.Add(string(ModName));

      for q:=0 to sl.Count-1 do                  ///////////-???
if sl.text="E:\585.exe" then  l=true else l=false;

               CloseHandle(ph);

     end;
   end;

 end;

end;
procedure TForm1.Button1Click(Sender: TObject);

begin

 GetProcessList(listbox1.Items) ;

end;

Если 585.ехе запущен после моей проги то всё нормально(t:=true),  а вот если до то почему-то не катит :(
Может кто подскажет !?!?


 
begin...end ©   (2006-01-16 17:37) [1]

> SpyBoy ©   (16.01.06 17:24)

> for i := 0 to count  do

for i := 0 to count div sizeof(DWORD) - 1 do

> EnumProcessModules(ph, @mh, 4, cm)

А это зачем?

> GetModuleFileNameEx(ph, mh, ModName, sizeof(ModName))

GetModuleFileNameEx(ph, 0, ModName, sizeof(ModName))


 
SpyBoy ©   (2006-01-16 18:41) [2]

Замечания учтены и ошибки исправленны, однако....:(
Если 585.ехе запущен после моей проги то всё нормально(t:=true),  а вот если до то почему-то не катит :(
Даже если переделать

for q:=0 to sl.Count-1 do                  
if sl.text="E:\585.exe" then  l=true else l=false;

в

for q:=0 to sl.Count-1 do                  
if sl.strings[q]="E:\585.exe" then  l=true else l=false;


 
ALFER ©   (2006-02-23 14:03) [3]

Неужели никаких вариантов болше нет ?!!!



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

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

Наверх





Память: 0.45 MB
Время: 0.013 c
2-1146398502
elfixis
2006-04-30 16:01
2006.05.21
treeview


4-1141045353
Chaser
2006-02-27 16:02
2006.05.21
Сделать аналогично Пуск -> Выполнить


15-1145547611
Mozgan
2006-04-20 19:40
2006.05.21
Как обработать событие OnClick???


15-1145988181
Fenik
2006-04-25 22:03
2006.05.21
Хочу найти песню, хотя бы название и автора.


2-1146647312
Sw
2006-05-03 13:08
2006.05.21
Компонент TdxDBTreeView





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