Показать сообщение отдельно
  #3  
Старый 18.04.2014, 10:27
EviLrul EviLrul вне форума
Прохожий
 
Регистрация: 17.04.2014
Сообщения: 2
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Уважаемый NumLock, большое спс за отзывчивость!
Хотелось бы Вас попросить прокоментить ваш код, хотелось бы лучше его понять... т.к. использовал ранее практически как я посмотрю аналогичный код...
Код:
procedure Start(name: string);
var
   si: STARTUPINFO;
   pi: PROCESS_INFORMATION;
begin
   ZeroMemory(@si,sizeof(si));
   si.cb:=SizeOf(si);
   if not CreateProcess(nil, PChar(name), nil, nil, False, 0, nil, nil, si, pi) then begin
      ShowMessage( 'CreateProcess failed.' );
      Exit;
   end;
   WaitForSingleObject( pi.hProcess, INFINITE );
   CloseHandle( pi.hProcess );
   CloseHandle( pi.hThread );
   //ShowMessage('Done !');
end;
Код:
if form1.CheckBox4.Checked=true then Start(Rn[1,2]+Rn[4,1]+'7Zip\Inst7z.bat');
и на разных ПК и разных ОС (winXP, win7), то стартует, то выдаёт по не понятной мне закономерности "CreateProcess failed" (я так понимаю что CreateProcess не отрабатывал в какие то моменты) может у меня всё же код кривой? поможите чем сможите...

А так же интересно, почему не отрабатывает все же мой вариант, есть предположения?
Ответить с цитированием