Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];

Вниз

Запуск и завершение программы принудительно.   Найти похожие ветки 

 
()utLaw   (2002-10-20 00:00) [0]

Собственно, надо реализовать сабж. Т.е. запустить прогу и, если она за нужное ремя не завершилась, то скинуть ее.
Плз, пишите мне на мыло.


 
Rouse_   (2002-10-20 00:05) [1]

Ну посмотри ты в FAQ, там все по полочкам разложено

Желаю успехов


 
Aleks1   (2002-10-20 04:11) [2]

Честно говоря общий ответ на сабж, действительно есть в FAQ причем не один раз. Но, имхо, если привести подробности задачи, то ответ может быть гораздо лучше по всем параметрам.


 
Rouse_   (2002-10-20 05:36) [3]

Да не вопрос, ответ то дать можно, но почему бы и не посмотреть в факе?

Вот примерный алгоритм действий

procedure Demo_Start_Kill_Proc;
var
H:HWND;
dwPID: integer;
hProc: THandle;
begin
//Запускаем
h:= ShellExecute(Handle,"open",PChar(Расположение программы),PChar(Параметры),PChar(Рабочая директория),SW_NORMAL);
//Ждем
Sleep(Время ожидания);
//Убиваем программу
if GetWindowThreadProcessId(H, @dwPID)<>0 then
hProc := OpenProcess(PROCESS_ALL_ACCESS, TRUE, dwPID);
if hProc <> 0 then
TerminateProcess(hProc, 0);
end;


Желаю успехов


 
andrey_pst   (2002-10-20 08:27) [4]

Разрешите еще вопрос:
TerminateProcess выгружает dll, использующиеся "убиваемой" программой ?


 
Rouse_   (2002-10-20 09:35) [5]

Нет, для этого лучше WM_QUIT

Желаю успехов


 
()utLaw   (2002-10-20 10:51) [6]

А если прога запускается ДОСовская?


 
Rouse_   (2002-10-20 10:55) [7]

Тогда первый вариант кода

Желаю успехов


 
()utLaw   (2002-10-21 09:12) [8]

Я сделал так:

(************ Server.dpr ************)
program Server;

uses
Forms,
ServerMain in "ServerMain.pas" {ServerForm};

{$R *.RES}

begin
Application.Initialize;
Application.CreateForm(TServerForm, ServerForm);
Application.Run;
end.
(************ ServerMain.pas ************)
unit ServerMain;

interface

uses
// Messages, SysUtils, Graphics, Dialogs, StdCtrls,
Classes, Controls, StdCtrls,
Forms, Windows, ShellAPI;

type
TServerForm = class(TForm)
bRun: TButton;
procedure bRunClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
ServerForm: TServerForm;

implementation

{$R *.DFM}

procedure TServerForm.bRunClick(Sender: TObject);
var
H:HWND;
dwPID: integer;
hProc: THandle;
begin
//Запускаем
h:= ShellExecute(Handle,"open",PChar("d:\Мои документы\Projects\Progs\Tester\TST.exe"),PChar(""{Параметры}),PChar("d:\Мои документы\Projects\Progs\Tester\"{Рабочая директория}),SW_NORMAL);
//Ждем
Sleep(3000{Время ожидания});
//Убиваем программу
if GetWindowThreadProcessId(H, @dwPID)<>0 then
hProc := OpenProcess(PROCESS_ALL_ACCESS, TRUE, dwPID);
if hProc <> 0 then
TerminateProcess(hProc, 0);
end;

end.
(************ TST.PAS ************)
{Компилировано TurboPascal"ем}
begin
readln;
end.

но... Программа TST не завершается.... Что делать?

Программа должна тестировать олимпиадные задачи. Там есть лимит по времени, т.е. по прошествии N секунд задача убивается (если сама не завершилась) и выдается сообщение о непрохождении по времени. Иначе происходит анализ результатов.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
14-101518
Johnny Smith
2002-10-10 11:53
2002.10.31
Кстати, а как там наш одиночка-самоубийца с видеокамарой?


14-101455
Дремучий
2002-10-10 17:30
2002.10.31
Глючит дата (год) регистрациии?


6-101429
klik
2002-08-28 09:51
2002.10.31
А что будет?


1-101298
ximka
2002-10-17 21:14
2002.10.31
Математическое моделирование


8-101389
onio
2002-07-04 17:34
2002.10.31
Как векторизировать растровое изображение?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский