Программы   Загрузка Партнерство   О компании Контакты  
 
                    
  Карта Сайта   
   

Как правильно завершить некое приложение

Автор: Nomadic

Если не принудительно, то можно послать на его Instance сообщение WM_QUIT. Если же необходимо принудительно терминировать приложение, то смотрите ниже - под Windows NT процесс можно терминировать через специально предназначенный для этого хэндл. Иначе гарантии нет. Предположим, что процесс создаем мы, ожидая его завершения в течение maxworktime. Тогда -


var
  dwResult: Longint; // This example was converted from C source.
begin
  // Not tested. Some 'nil' assignments must be applied
  // as zero assignments in Pascal. Some vars need to
  // be declared (maxworktime, si, pi). AA.
  if CreateProcess(nil, CmdStr, nil, nil, FALSE,
    CREATE_NEW_CONSOLE, nil, nil, si, pi) then
  begin
    CloseHandle(pi.hThread);
    dwResult := WaitForSingleObject(pi.hProcess, maxworktime * 1000 * 60);
    CloseHandle(pi.hProcess);
    if dwResult <> WAIT_OBJECT_0 then
    begin
      pi.hProcess := OpenProcess(PROCESS_TERMINATE, FALSE, pi.dwProcessId);
      if pi.hProcess <> nil then
      begin
        TerminateProcess(pi.hProcess, 0);
        CloseHandle(pi.hProcess);
      end;
    end;
  end;
end;

           


Бизнес с нуля. 150 000 в месяц: продажа готового бизнеса. Продам производство блоков. . Куплю поддельный китайский телефон vertu. Китайские сотовые телефоны samsung gm. . Двери межкомнатные новинки - раздвижные двери купе. . мальдивы в фото .


Программы  |  Загрузка  |  Партнерство  |  О компании  |  Контакты

Copyright © LSD Software 2006 - 2011