Форум: "Основная";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];
ВнизНе успевает отрабатывать внешняя программа Найти похожие ветки
← →
YuriyTLT (2006-11-04 02:50) [0]Доброго уже утра. Парни, есть код:
CopyFile ("m:\sys\tag.dat", "e:\chasovoi\tag.dat", true);
CopyFile ("m:\sys\tag.dat", "e:\chasovoi\tag.dat", false);
WinExec("e:\chasovoi\tagi.exe",SW_SHOWMINNOACTIVE);
Sleep (2000);
Вот этот последний Sleep (2000) делаю для того, чтобы успела отработать программа tagi. Может как нибудь можно отслеживать завершение её работы?
← →
Palladin © (2006-11-04 03:54) [1]Зачем два раза CopyFile?
← →
YuriyTLT (2006-11-04 04:43) [2]Это для того, что файла может не существовать в каталоге, типа перестраховка. Если труе - значит меняется, если фальш - значит копируется заново
← →
Palladin © (2006-11-04 05:13) [3]чушь
← →
YuriyTLT (2006-11-04 05:19) [4]чушь, зато работает. А ладно, сам разберусь. Спасибо
← →
RASkov (2006-11-04 05:37) [5]if FileExist then CopyFile ("m:\sys\tag.dat", "e:\chasovoi\tag.dat", false)
else CopyFile ("m:\sys\tag.dat", "e:\chasovoi\tag.dat", true);
ExecuteAndWait("e:\chasovoi\tagi.exe", True);
function ExecuteAndWait(FileName: string; HideApplication: boolean): boolean;
var
StartupInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
exitc: cardinal;
begin
FillChar(StartupInfo, sizeof(StartupInfo), 0);
with StartupInfo do begin
cb := Sizeof(StartupInfo);
dwFlags := STARTF_USESHOWWINDOW;
wShowWindow := SW_SHOW;
end;
if not CreateProcess(nil, PChar(FileName), nil, nil, false,
CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil,
StartupInfo, ProcessInfo) then result := false
else begin
if HideApplication then begin
Application.Minimize;
ShowWindow(Application.Handle, SW_HIDE);
WaitforSingleObject(ProcessInfo.hProcess, INFINITE);
end else
while WaitforSingleObject(ProcessInfo.hProcess, 100) =
WAIT_TIMEOUT do begin
Application.ProcessMessages;
if Application.Terminated
then TerminateProcess(ProcessInfo.hProcess, 0);
end;
GetExitCodeProcess(ProcessInfo.hProcess, exitc);
result := (exitc = 0);
if HideApplication then begin
ShowWindow(Application.Handle, SW_SHOW);
Application.Restore;
Application.BringToFront;
end;
end;
end;
← →
Anatoly Podgoretsky © (2006-11-04 10:42) [6]> YuriyTLT (04.11.2006 2:50:00) [0]
А ты справку по WinExec читал и откуда вы только беретесь, Win 3.0 уже не
существует более 10 лет а программисты все ее помнят.
Ну а про чушь с CopyFile тебе уже сказали.
← →
Орион © (2006-11-04 12:35) [7]> [5] RASkov (04.11.06 05:37)
> if FileExist then CopyFile ("m:\sys\tag.dat", "e:\chasovoi\tag.dat",
> false)
> else CopyFile ("m:\sys\tag.dat", "e:\chasovoi\tag.dat",
> true);
))CopyFile ("m:\sys\tag.dat", "e:\chasovoi\tag.dat", not FileExist("m:\sys\tag.dat"))
← →
Leonid Troyanovsky © (2006-11-04 12:56) [8]
YuriyTLT (04.11.06 05:19) [4]
чушь, зато работает. А ладно, сам разберусь. Спасибо
RASkov (04.11.06 05:37) [5]
if FileExist then CopyFile ("m:\sys\tag.dat", "e:\chasovoi\tag.dat", false)
else CopyFile ("m:\sys\tag.dat", "e:\chasovoi\tag.dat", true);
Орион © (04.11.06 12:35) [7]
> CopyFile ("m:\sys\tag.dat", "e:\chasovoi\tag.dat", not FileExist("m:
> \sys\tag.dat"))
Чушь.
--
Regards, LVT.
← →
Орион © (2006-11-04 13:00) [9]> [8] Leonid Troyanovsky © (04.11.06 12:56)
а, ну да)) хватит просто True.
← →
Орион © (2006-11-04 13:04) [10]сначала написал, потом подумал (ну как обычно :) )
хватит просто False
← →
Leonid Troyanovsky © (2006-11-04 13:05) [11]
> Орион © (04.11.06 13:00) [9]
> а, ну да)) хватит просто True.
False.
--
Regards, LVT.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.038 c