Суббота, 21.12.2024, 19:57 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: xXxSh@dowxXx, Anton93, Волк-1024  
Программка в Delphi
papsikДата: Понедельник, 30.03.2020, 14:31 | Сообщение # 1
Частый гость
Зарегистрирован: 10.03.2020
Группа: Пользователи
Сообщений: 50
Статус: Offline
Всем привет!
Я хочу,что бы при запуске одного exe файла (допустим C:\File1) у меня закрывался другой exe файл (допустим C:\File2)
Сделал вот что:
procedure TForm1.Button1Click(Sender: TObject);
begin
if run C:\File1 then begin clothes C:\File2;
end;

end.

Естественно ничего не получилось. Подскажите как сделать то,что я задумал?
 
dolphinДата: Вторник, 31.03.2020, 10:37 | Сообщение # 2
Администратор
Сообщений: 906
Статус: Offline
Предлагаю так

Код
function KillTask(ExeFileName: string):integer;
var
  Co:BOOL;
  FS:THandle;
  FP:TProcessEntry32;
begin
  result:=0;
  FS:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
  FP.dwSize:=Sizeof(FP);
  Co:=Process32First(FS,FP);
  while integer(Co) <> 0 do
  begin
    if ((UpperCase(ExtractFileName(FP.szExeFile))=UpperCase(ExeFileName)) or
    (UpperCase(FP.szExeFile)=UpperCase(ExeFileName))) then
    Result:=Integer(TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0),
    FP.th32ProcessID),0));
    Co:=Process32Next(FS,FP);
  end;
  CloseHandle(FS);
end;

function ProcessExists(exeFileName: string): Boolean;
var
    ContinueLoop: BOOL;
    FSnapshotHandle: THandle;
    FProcessEntry32: TProcessEntry32;
begin
    FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    FProcessEntry32.dwSize := SizeOf(FProcessEntry32);
    ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
    Result := False;
    while Integer(ContinueLoop) <> 0 do
    begin
      if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
        UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
        UpperCase(ExeFileName))) then
      begin
        Result := True;
      end;
      ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
    end;
    CloseHandle(FSnapshotHandle);
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
  if processExists('notepad.exe') then KillTask ('notepad.exe');
end;
Прикрепления: _-2-.zip (52.3 Kb)


Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
papsikДата: Вторник, 31.03.2020, 13:52 | Сообщение # 3
Частый гость
Зарегистрирован: 10.03.2020
Группа: Пользователи
Сообщений: 50
Статус: Offline
Цитата dolphin ()
Предлагаю так

от души, сейчас зачекаю
 
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz