[DUG] CreateProcess
lbisman
lbisman at clear.net.nz
Wed Oct 25 17:25:54 NZDT 2006
Should that pChar string be 'cmd /c MySQLExport.bat' as it's
the command interpreter that usually runs batch files...
Laurie..
----- Original Message Follows -----
> Hi
>
> I am trying to use create process to run a batch file.
> The batch file exports a MySQL DB to a file. The batch
> file runs but the file is 0kb however if run that batch
> file normally (not from CreateProcess) the file is
> correctly created (about 2MB). The code I am using is
> shown below, does anyone have any idea as to what I am
> doing wrong?
>
>
> var
> proc_info : TProcessInformation;
> startinfo : TStartupInfo;
> ExitCode : longword;
> begin
> Result := False;
>
> // Initialize the structures
> FillChar(proc_info, sizeof(TProcessInformation), 0);
> FillChar(startinfo, sizeof(TStartupInfo), 0);
> startinfo.cb := sizeof(TStartupInfo);
>
> // Attempts to create the process
> if (CreateProcess(Nil,
> pChar('MySQLExport.bat'),
> nil,
> nil,
> false,
> NORMAL_PRIORITY_CLASS,
> nil,
> pChar(AppDir),
> startinfo,
> proc_info) <> False) then begin
> // Process created, now s wait till it ends...
> WaitForSingleObject(proc_info.hProcess, INFINITE);
>
> GetExitCodeProcess(proc_info.hProcess, ExitCode);
> CloseHandle(proc_info.hThread);
> CloseHandle(proc_info.hProcess);
>
> Sleep(5000); //Wait 5secs just to allow any
> windows cleanup or other to finish
>
> if (FileExists(AppDir + BASE_FILE) = True) then
> begin
> if (CreateZipFile = True) then begin
> Result := True;
> end;
> end;
> end;
> end;
>
> --
> Rob Martin
> Software Engineer
>
> phone +64 03 377 0495
> fax +64 03 377 0496
> web www.chreos.com
>
> Wild Software Ltd
>
> _______________________________________________
> Delphi mailing list
> Delphi at ns3.123.co.nz
> http://ns3.123.co.nz/mailman/listinfo/delphi
Laurie..
More information about the Delphi
mailing list