Запуск/закрытие другого приложения

Тема в разделе "Delphi", создана пользователем WinHack, 23 ноя 2016.

  1. WinHack
    Как запустить/закрыть другое приложение из своего приложения.

    Используйте вызов API функции ExecuteProcess, чтобы запустить приложение и TerminateProcess для того, чтобы закрыть это приложение.

    Пример использования

    Код:
    var
    MyHandle     : THandle;
    MyStartupInfo: TStartupInfo;
    MyProcessInfo: TProcessInformation;
    
    procedure TMyForm.ExecuteApp(MyPath: String);
    begin
    FillChar(MyStartupInfo, SizeOf(MyStartupInfo), 0);
    // Очистить данные в MyStartupInfo.
    
    MyStartupInfo.cb:=SizeOf(MyStartupInfo);
    
    CreateProcess(PChar(MyPath), nil,  nil, nil, False,   
                   DETACHED_PROCESS, nil, nil, MyStartupInfo,
                   MyProcessInfo);
    
    MyHandle:=MyProcessInfo.hProcess;
    // Назначает дескриптор выполняемого приложения на MyHandle, этот   
    // дескриптор необходим для завершения приложения.
    end;
    
    procedure TMyForm.CloseApp(MyHandle: THandle);
    begin
    TerminateProcess(MyHandle, 0);
    end;