|
Платные хостинги
Раскрутка сайта
Книги по программированию
CreateProcess, и XP
- Че то не получается дождаться завершения приложения,выдает ошибку Access vioation at adress .... in module ntdll.dllстоит XP, может поэтому?вот кодКод var hProcess : array [0..1] of Cardinal; struc1 : PSTARTUPINFO; struc2 : PROCESS_INFORMATION;...CreateProcess ( PChar(VremKat+NameFile) ,nil,nil,nil,False,NORMAL_PRIORITY_CLASS,nil,nil,struc1^,struc2 ); hProcess[0] := struc2.hProcess;if WaitForMultipleObjects ( 2, @hProcess, True, INFINITE ) = 1 then ShowMessage (' OK' );highlightSyntax('delphiODFhN2','delphi'); Это сообщение отредактировал Darksquall - 4.11.2004, 12:38
- насколько я понял требуется ожидать одного объектазачем тогда использовать WaitForMultipleObjects?ошибка, скорее всего, возникает при использовании hProcess[1], который не заполняется
- Нет, ошибка возникает на команде CreateProcess
- Если на CreateProcess ошибка, то может неправильно struc1 заполнил ?
- О, вот так заработало. Код procedure TForm1.ExecAndWait(FileNames:String);varRslt: LongBool;StartUpInfo: TStartUpInfo;ProcessInfo: TProcessInformation;App:array [0..254] of Char;CmdLine: String;beginFillChar(StartupInfo, SizeOf(TStartupInfo), #0);with StartupInfo do begincb:=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 beginWaitForSingleObject(ProcessInfo.hProcess, INFINITE);CloseHandle(ProcessInfo.hThread);CloseHandle(ProcessInfo.hProcess);ShowMessage('Файл закрыт!!!!'); end else ShowMessage('Ошибка закрытия файла');end;highlightSyntax('delphiWQwYjU','delphi');хух, кошмар, теперь буду связывать 4 разных приложения через OLE и это все с SQL сервером , немного уже осталось
Интернет казино
Онлайн игры
Увеличение члена
Купить DVD
|