Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.17;
Скачать: CL | DM;

Вниз

Не успевает отрабатывать внешняя программа   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
15-1164625630
Rule
2006-11-27 14:07
2006.12.17
Ктонить пользуется джабером ???


1-1162547389
Dmitry_177
2006-11-03 12:49
2006.12.17
Удалить первые n-байт из файла


2-1165056771
Kotik
2006-12-02 13:52
2006.12.17
Нарастающий итог (TStringGrid)


2-1164635692
Draught
2006-11-27 16:54
2006.12.17
Событие DBEdit - нажатие Enter или другой заданой клавиши


15-1164285460
Vera
2006-11-23 15:37
2006.12.17
Программа