О, вот так заработало.
| Код | procedure TForm1.ExecAndWait(FileNames:String); var Rslt: LongBool; StartUpInfo: TStartUpInfo; ProcessInfo: TProcessInformation; App:array [0..254] of Char; CmdLine: String; begin FillChar(StartupInfo, SizeOf(TStartupInfo), #0); with StartupInfo do begin cb:=SizeOf(TStartupInfo); dwFlags := STARTF_USESHOWWINDOW; wShowWindow :=SW_SHOW; end; FindExecutable(PChar(FileNames),nil,App); CmdLine:=App+' "'+ Filenames + '"'; Rslt:=CreateProcess(nil, PChar(CmdLine), nil, nil, False, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo);
if Rslt then begin WaitForSingleObject(ProcessInfo.hProcess, INFINITE); CloseHandle(ProcessInfo.hThread); CloseHandle(ProcessInfo.hProcess); ShowMessage('Файл закрыт!!!!'); end else ShowMessage('Ошибка закрытия файла'); end;
|
хух, кошмар, теперь буду связывать 4 разных приложения через OLE и это все с SQL сервером , немного уже осталось |