Execute Windows Commands from PHP without blocking
When researching for my live error reporting posting, I tried running some exec and passthru command tests by starting up calc.exe.  While they executed the command correctly, I got some weird results in my script … which I suppose now make sense.  Let’s see how we can start programs in Windows, and not run into the same issues that I did.
What happened?
Using exec, passthru, etc, I was able to execute my windows process.  However, if you look closely at the manual entries for these type of commands, it gives a return type of either a string or an array.  They will return the output of the command ran to your variable.  (This is helpful, say… if you wanted to run a ping command - and gather the results).  Well, when you launch a program, and want your existing script to continue, this blocking seriously sucks.  After reading the comments on one of the exec commands manual pages, however, I found the solution.
How can I start a program without blocking?
Using the Com object in windows:
$runCommand = 'calc.exe';
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run($runCommand, 7, false);
Of course if you wanted to run the command on *nix, you could use the standard shell_exec calls or whatever using the send to background operator &.
Com Components are becoming more valuable
As well as launching programs in the background for windows, I’ve also used com objects for testing e-mail with outlook. I think this is something that could be more useful for local windows developers (I wonder if a com object could be used to interface with eclipse when running the test site using eclipse’s web browser…)