Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2011, 17:36   #1
niki2012
Пользователь
 
Аватар для niki2012
 
Регистрация: 03.01.2011
Сообщений: 64
Вопрос Работа с Windows процессами

Пишу программу Родительский Контроль, необходимо отслеживать выбранные пользователем процессы (игры, браузер и тп) и, например, "убивать" их. Для начала программа должна делать следующее:
1.Пользователь вводит путь к exe файлу, программа его запускает
2.Находит запущенный процесс (по пути к exe'шнику) и запоминает какое-нибудь его уникальное свойство (например оконный класс), убивает процесс
3.Далее по таймеру отслеживает этот процесс по запомненному свойству

(Если у вас есть более рациональный способ - тоже напишите)

PS: Забыл добавить что мне нужен код как это реализовать, ибо с процессами раньше не работал
Программист - это не тот, кто пишет программы, а тот, чьи программы работают.

Последний раз редактировалось niki2012; 03.01.2011 в 17:47. Причина: Не дописал
niki2012 вне форума Ответить с цитированием
Старый 03.01.2011, 17:40   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Ну да, нормальный способ вроде бы. Хотя сам точно не знаю, но выглядит вроде как логично.
_-Re@l-_ вне форума Ответить с цитированием
Старый 07.03.2011, 11:27   #4
Crunkordie
Пользователь
 
Регистрация: 18.02.2011
Сообщений: 48
Вопрос

Здравствуйте.
есть код программы :
Код:
S:                 array of string;
cb,z:              Integer;
ProcessHandle:     THandle;
ProcessExePath:    array[0..127] of Char;
pmc:               PPROCESS_MEMORY_COUNTERS;
T: Textfile;
...
procedure GetProcs();
var
  hProcSnap: THandle;
  pe32: TProcessEntry32;
begin
  z:=0;
  FileDescription:= '';
  hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0);
  if hProcSnap = INVALID_HANDLE_VALUE then exit;
  pe32.dwSize := SizeOf(ProcessEntry32);
  if Process32First(hProcSnap, pe32) = true then
    while Process32Next(hProcSnap, pe32) = true do
     begin
      ProcessHandle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False,pe32.th32ProcessID );
      GetModuleFileNameEx(ProcessHandle, 0, ProcessExePath,127);
      cb := SizeOf(_PROCESS_MEMORY_COUNTERS);
      GetMem(pmc, cb);
      pmc^.cb := cb;
      GetProcessMemoryInfo(ProcessHandle, pmc, cb);
      if  pmc^.PeakPagefileUsage <> 0 then begin
                                              S[z]:=pe32.szExeFile+' : '+ExpandFileName(ProcessExePath);
                                              z:=z+1;
                                              SetLength(S, z+1);
                                           end;
    end;
  CloseHandle(hProcSnap);
  CloseHandle(ProcessHandle);
  showmessage('vse');
end;
...
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;

begin
GetProcs();
AssignFile(T,'D:\test.txt');
Rewrite(T);
Writeln(T, '[Proc]');
for I := 0 to z do begin
                    Writeln(T, S[i]);
                   end;
end;
Программа считывает все процессы и записывает в текстовый файл. При запуске в среде разработки отображаются все процессы, а если запустить через exe, то большую часть не видит. Это можно как-нибудь исправить?
Crunkordie вне форума Ответить с цитированием
Старый 07.03.2011, 14:44   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

зачем вы лезетев чужукю тему? Создайте свою и вам помогут.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Память, используемая процессами ordoss Win Api 0 09.10.2010 03:58
[Вопросы]Работа с процессами. Процессы изнутри Человек_Борща Общие вопросы Delphi 2 03.04.2010 18:37
Управление процессами An123 Помощь студентам 2 18.12.2009 23:14
управление процессами An123 Общие вопросы C/C++ 5 29.11.2009 14:46
убить процесс по его идентификатору - Работа с процессами ACE Valery Общие вопросы C/C++ 8 04.06.2009 21:51