我正在嘗試編寫一個例程,該程序將從Delphi 2010應用程序中執行DOS批處理程序。我在Delphi 6中運行的舊例程不斷給我提示錯誤信息: -如何從Delphi 2010應用程序中調用MS-DOS批處理程序
「Project1.exe引發異常類EAccessViolation,消息'模塊'kernel32.dll'中的地址7C82F29C處出現訪問衝突,寫入地址004A3B82」。
這裏是我的老套路,在德爾福工作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;
請讓我知道我做錯了或有更好的方法去這個... 非常感謝。
在StackOverflow上搜索「[delphi] ShellExecute」或「[delphi] ShellExecuteEx」會給你一些選擇。 – mghie 2009-11-18 08:32:35