might have been a mailserver somewhere doing it.
Anyway, your code does the same thing....hmmm...weired.

Jeremy

-----Original Message-----
From: "Chris Milham" <[EMAIL PROTECTED]>
To: Multiple recipients of list delphi <[EMAIL PROTECTED]>
Date: Mon, 11 Nov 2002 15:59:07 +1300
Subject: RE:  RE: [DUG]:  Execute and wait

> Hmm.. I don't know where those "3D"s came from :/
> Just remove them all and you should be fine. Make sure you are using
> the =
> windows unit.
> 
> Chris
> 
> > -----Original Message-----
> > From: vss [mailto:vss@;vss.co.nz]
> > Sent: Monday, 11 November 2002 3:44 p.m.
> > To: Multiple recipients of list delphi
> > Subject: RE: [DUG]: Execute and wait
> >=20
> >=20
> > Hi Chris. I tried your code, but it failed here
> >=20
> > cb :=3D3D SizeOf(TStartupInfo);
> >=20
> > Jeremy
> >=20
> > -----Original Message-----
> > From: "Chris Milham" <[EMAIL PROTECTED]>
> > To: Multiple recipients of list delphi <[EMAIL PROTECTED]>
> > Date: Mon, 11 Nov 2002 15:13:44 +1300
> > Subject: RE: [DUG]:  Execute and wait
> >=20
> > > Try this one. I have just wrapped a version of=20
> > "WinExecAndWait32". This
> > > =3D
> > > one DEFINITELY waits correctly.
> > > HTH
> > >=20
> > > Chris
> > >=20
> > > procedure ExecuteProgram(sPath: string; bWait: Boolean);
> > >   function WinExecAndWait32(Path: PChar; Visibility: Word;
> > >     Timeout: DWORD): integer;
> > >   var
> > >     WaitResult: integer;
> > >     StartupInfo: TStartupInfo;
> > >     ProcessInfo: TProcessInformation;
> > >   begin
> > >     FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
> > >     with StartupInfo do
> > >     begin
> > >       cb :=3D3D SizeOf(TStartupInfo);
> > >       dwFlags :=3D3D STARTF_USESHOWWINDOW or
> STARTF_FORCEONFEEDBACK;
> > >     { you could pass sw_show or sw_hide as parameter: }
> > >       wShowWindow :=3D3D visibility;
> > >     end;
> > >     if CreateProcess(nil, path, nil, nil, False,
> > >       NORMAL_PRIORITY_CLASS, nil, nil,
> > >       StartupInfo, ProcessInfo) then
> > >     begin
> > >       WaitResult :=3D3D WaitForSingleObject(ProcessInfo.hProcess, =
> =3D
> > > timeout);
> > >       { timeout is in miliseconds or INFINITE if
> > >       you want to wait forever }
> > >       result :=3D3D WaitResult;
> > >     end
> > >     else
> > >     { error occurs during CreateProcess see help for details }
> > >       result :=3D3D GetLastError;
> > >   end;
> > > begin
> > >   SetCurrentDir(ExtractFilePath(Application.ExeName)); {Set=20
> > this so =3D
> > > relative paths will work}
> > >   if not FileExists(sPath) then begin
> > >     DlgError('Unable to run "' + sPath + '"'+NL+'The=20
> > program cannot be
> > > =3D
> > > found.');
> > >   end else begin
> > >     if bWait then begin
> > >       WinExecAndWait32(PChar(sPath), SW_SHOW, INFINITE);
> > >     end else begin
> > >       WinExecAndWait32(PChar(sPath), SW_SHOW, 0);
> > >     end;
> > >   end;
> > > end;
> > >=20
> > >=20
> > >=20
> > > > -----Original Message-----
> > > > From: vss [mailto:vss@;vss.co.nz]
> > > > Sent: Monday, 11 November 2002 3:08 p.m.
> > > > To: Multiple recipients of list delphi
> > > > Subject: [DUG]: Execute and wait
> > > >=3D20
> > > >=3D20
> > > > Hi All.
> > > > I have a bit of code that does an execute and waits for the app.
> > > to=3D20
> > > > close.
> > > > What I want to do is execute a game and know when its=3D20
> > > > finished, BUT when=3D20
> > > > I use my code, it starts to execute the app, but then it=20
> > stops and=3D20
> > > > returns an error code of zero which means its finished...BUT it
> > > never=3D20
> > > > started.
> > > > This is teh code I use. anyone got anything better?
> > > >=3D20
> > > > Jeremy
> > > >=3D20
> > > >=3D20
> > > > function TfrmMain.WinExecAndWait32(Path: PChar;=20
> > Visibility: Word):=3D20
> > > > integer;
> > > > var Msg: TMsg;
> > > >     lpExitCode: cardinal;
> > > >     StartupInfo: TStartupInfo;
> > > >     ProcessInfo: TProcessInformation;
> > > > begin
> > > >   FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
> > > >   with StartupInfo do
> > > >   begin
> > > >     cb :=3D3D SizeOf(TStartupInfo);
> > > >     dwFlags :=3D3D STARTF_USESHOWWINDOW or
> STARTF_FORCEONFEEDBACK;
> > > >     wShowWindow :=3D3D visibility; {you could pass sw_show=20
> > or sw_hide
> > > as =3D
> > >=20
> > > > parameter}
> > > >   end;
> > > >=3D20
> > > >   if CreateProcess(nil, path, nil, nil, False,
> > > NORMAL_PRIORITY_CLASS,=3D20
> > > > nil, nil, StartupInfo,
> > > >                    ProcessInfo) then
> > > >   begin
> > > >     repeat
> > > >       while PeekMessage(Msg, 0, 0, 0, pm_Remove) do
> > > >       begin
> > > >         if Msg.Message =3D3D wm_Quit then Halt(Msg.WParam);
> > > >         TranslateMessage(Msg);
> > > >         DispatchMessage(Msg);
> > > >       end;
> > > >       GetExitCodeProcess(ProcessInfo.hProcess,lpExitCode);
> > > >     until lpExitCode <> Still_Active;
> > > >=3D20
> > > >     with ProcessInfo do {not sure this is necessary but seen=3D20
> > > > in in some=3D20
> > > > code elsewhere}
> > > >     begin
> > > >       CloseHandle(hThread);
> > > >       CloseHandle(hProcess);
> > > >     end;
> > > >     Result :=3D3D 0; {success}
> > > >   end else Result :=3D3D GetLastError;
> > > > end;
> > > >=3D20
> > > > --------------------------------------------------------------
> > > > -------------
> > > >     New Zealand Delphi Users group - Delphi List -=3D20
> > > > [EMAIL PROTECTED]
> > > >                   Website: http://www.delphi.org.nz
> > > > To UnSub, send email to: [EMAIL PROTECTED]=3D20
> > > > with body of "unsubscribe delphi"
> > > > Web Archive at:=20
> > http://www.mail-archive.com/delphi%40delphi.org.nz/
> > > >=3D20
> > >=20
> > --------------------------------------------------------------
> > ---------
> > > ----
> > >     New Zealand Delphi Users group - Delphi List -=20
> > [EMAIL PROTECTED]
> > >                   Website: http://www.delphi.org.nz
> > > To UnSub, send email to: [EMAIL PROTECTED]=20
> > > with body of "unsubscribe delphi"
> > > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/
> >=20
> > --------------------------------------------------------------
> > -------------
> >     New Zealand Delphi Users group - Delphi List -=20
> > [EMAIL PROTECTED]
> >                   Website: http://www.delphi.org.nz
> > To UnSub, send email to: [EMAIL PROTECTED]=20
> > with body of "unsubscribe delphi"
> > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/
> >=20
> -----------------------------------------------------------------------
> ----
>     New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
>                   Website: http://www.delphi.org.nz
> To UnSub, send email to: [EMAIL PROTECTED] 
> with body of "unsubscribe delphi"
> Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/

---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz
To UnSub, send email to: [EMAIL PROTECTED] 
with body of "unsubscribe delphi"
Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/

Reply via email to