![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не успевает отрабатывать внешняя программа [D5, D6, D7, Win95/98, WinME]
YuriyTLT © (2006-11-04 02:50:00)Доброго уже утра. Парни, есть код:
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. Может как нибудь можно отслеживать завершение её работы?
Leonid Troyanovsky (2006-11-04 13:05:00) [1]
> Орион © (04.11.06 13:00) [9]
> а, ну да)) хватит просто True.
False.
--
Regards, LVT.
Орион (2006-11-04 13:04:00) [2]сначала написал, потом подумал (ну как обычно :) )
хватит просто False
Орион (2006-11-04 13:00:00) [3]> [8] Leonid Troyanovsky © (04.11.06 12:56)
а, ну да)) хватит просто True.
Leonid Troyanovsky (2006-11-04 12:56:00) [4]
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 12:35:00) [5]> [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'))
Anatoly Podgoretsky (2006-11-04 10:42:00) [6]> YuriyTLT (04.11.2006 2:50:00) [0]
А ты справку по WinExec читал и откуда вы только беретесь, Win 3.0 уже не
существует более 10 лет а программисты все ее помнят.
Ну а про чушь с CopyFile тебе уже сказали.
RASkov (2006-11-04 05:37:00) [7]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;
YuriyTLT (2006-11-04 05:19:00) [8]чушь, зато работает. А ладно, сам разберусь. Спасибо
Palladin (2006-11-04 05:13:00) [9]чушь
YuriyTLT (2006-11-04 04:43:00) [10]Это для того, что файла может не существовать в каталоге, типа перестраховка. Если труе - значит меняется, если фальш - значит копируется заново
Palladin (2006-11-04 03:54:00) [11]Зачем два раза CopyFile?