Okay, it took a bit more effort than I thought but I believe I managed to get the new events working without breaking the existing Shell.execute functionality. It still needs some testing but our beta should be good enough for your beta at least

Give me a shout at [email protected] and I'll get you hooked up with the development build so you can start playing with this...

NOTE TO INNOCENT BYSTANDERS This code will only work with SWF Studio 3.8 build 175 or higher. That build has not been released yet (as of March 19, 2010), I just wanted to show how the new events work.

This example lets you launch a PPT file and get notifications when the main application window becomes visible AND when the app is closed. The final onShellExecuteComplete event is fired when the Shell.execute call finally returns. The events both return the full path the application that generated them and the onShellExecuteWaitForWindow also returns the handle of the application window (HWND).

Code:
ssCore.init();
ssDefaults.synchronousCommands = true;

function LaunchPPT(path:String, cbfn:Function)
{
   var r:Object = ssCore.Shell.getDefaultApplication({extension:"ppt"});
	
   if (r.success)
      if (r.result != "")
         ssCore.Shell.execute({path:r.result, arguments:"/s " + path, findAny:true}, {callback:cbfn});
}

function onShellExecuteComplete(r, c, e)
{
   ssDebug.trace("onShellExecuteComplete");
}

function onWaitForWindow(r, c, e)
{
   ssDebug.trace("onWaitForWindow: " + r.result);
}

function onWaitForExit(r, c, e)
{
   ssDebug.trace("onWaitForExit: " + r.result);
}

ssCore.Shell.setNotify({event:"onShellExecuteWaitForWindow"}, {callback:onWaitForWindow});
ssCore.Shell.setNotify({event:"onShellExecuteWaitForExit"}, {callback:onWaitForExit});

LaunchPPT("c:\\test.ppt", onShellExecuteComplete);