Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не успевает отрабатывать внешняя программа [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?


Наверх

Титульная страница Поиск, карта сайта Написать письмо