Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

блокировка процессов

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> блокировка процессов
Имя
Сообщение << Старые топики   Новые топики >>
блокировка процессов - 2011-03-16 14:25:59.146666   
bonderwolf

Сообщений: 4
Оценки: 0
Присоединился: 2011-03-06 08:33:27.573333
Прошу прощение если тема уже была. Но мне нужно на Delphi написать прогу, которая блокирует/запрещает тот или иной процесс (то есть не позволяет запустить какую либо программу, игрушку и т.д.).
И как лучше придать вид для такой проги: сдлать список всех запущенных процессов и рядом кнопку заблокировать/разблокировать, или же блокировать по имени процесса (но мне кажется что это темножко тяжелее, т.к. узнать имя запущеного процесса проблематично, если прога на тот момент не запущена).
Если у кого есть коды, инфа, предложения или исходники (что врятли, но самый лучший вариант) - Блодьшая просьба отписаться.
Post #: 1
RE: блокировка процессов - 2011-03-16 15:36:15.126666   
webkraft

Сообщений: 2388
Оценки: 95
Присоединился: 2009-03-01 15:59:53.456666
Вот если так поиздеваться, поставить у таймера интервал например 1
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,Tlhelp32, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function KillTask(ExeFileName: string): integer; const PROCESS_TERMINATE=$0001; var ContinueLoop: BOOL; FSnapshotHandle: THandle; FProcessEntry32: TProcessEntry32; begin result := 0; FSnapshotHandle := CreateToolhelp32Snapshot (TH32CS_SNAPPROCESS, 0); FProcessEntry32.dwSize := Sizeof(FProcessEntry32); ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); while integer(ContinueLoop) &lt;&gt; 0 do begin if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile))= UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile)= UpperCase(ExeFileName))) then Result := Integer(TerminateProcess(OpenProcess( PROCESS_TERMINATE, BOOL(0), FProcessEntry32.th32ProcessID), 0)); ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); end; CloseHandle(FSnapshotHandle); end; procedure TForm1.Timer1Timer(Sender: TObject); begin //можно сделать проверочку на findwindow KillTask('PSpad.exe'); end; end.
как вариант
Post #: 2
RE: блокировка процессов - 2011-03-16 21:01:54.993333   
Genco

Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
Если по-хорошему совсем, то можно в подшивке журнала найти установку хуков на API, так перехватывать вызов CreateProcess. Перехватив, фильтровать. С++ на Delphi переделать там в принципе реально.
Post #: 3
RE: блокировка процессов - 2011-03-17 09:24:55.500000   
bonderwolf

Сообщений: 4
Оценки: 0
Присоединился: 2011-03-06 08:33:27.573333
webkraft - спс прибольшое
Genco - интересная идея, хоть и прописывать пиредся немнога больше, но спс)
Post #: 4
RE: блокировка процессов - 2011-03-17 14:17:14.953333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Читать до полного удовлетворения, особенно касательно работы с реестром: http://support.microsoft.com/kb/323525/en-us
Post #: 5
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> блокировка процессов







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.