Я пытаюсь написать процедуру, которая будет выполнять пакетную программу DOS из приложения Delphi 2010. Моя старая рутина, которая работает в Delphi 6, постоянно выдает мне сообщение об ошибке: -
"Project1.exe поднял класс исключений EAccessViolation с сообщением« Нарушение доступа по адресу 7C82F29C в модуле «kernel32.dll». Запись адреса 004A3B82 ».
Вот моя старая рутина, которая работает в Delphi 6: -
Procedure TForm1.BatchProgramCall;
var
StartInfo: TStartUpInfo;
ProcInfo: TProcessInformation;
createOK: Boolean;
begin
FillChar(StartInfo, SizeOf(TStartUpInfo), #0);
FillChar(ProcInfo, SizeOf(TProcessInformation), #0);
StartInfo.cb := SizeOf(TStartUpInfo);
StartInfo.dwFlags := STARTF_USESHOWWINDOW;
StartInfo.wShowWindow := SW_SHOWMINIMIZED;
createOK := CreateProcess(Nil,PCHAR('SOMEBATCHPROGRAM.BAT'),Nil, Nil, false,
CREATE_NEW_PROCESS_GROUP+HIGH_PRIORITY_CLASS,
NIL, NIL, STARTINFO, PROCINFO);
if createOK then
waitForSingleObject(PROCINFO.HPROCESS, Infinite);
end;
Пожалуйста, дайте мне знать, что я делаю неправильно, или есть лучший способ сделать это ...
Большое спасибо.