打开另一个程序后怎么激活原来的窗体

打开另一个程序后如何激活原来的窗体?
我用下面的方法调用写字板程序后,结果原来窗体的TEXT控件失去了焦点。
Assembly code
DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER HWND,STRING lpszOP,STRING lpszFile,STRING lpszParams,STRING lpszDir,INTEGER fsshowcmd   
DECLARE INTEGER GetDesktopWindow IN win32api   
HWND = GetDesktopWindow()   
lpszOP = "open"   

* 指定要打开的文件名 
lpszFile ="ab.exe" 
lpszParams = ""  
lpszDir = "Hand"  
fsshowcmd =1 &&0表示隐藏,1正常方式、2最小化方式、3最大化方式。 
LNRETURN = ShellExecute(HWND, lpszOP,lpszFile, lpszParams, lpszDir,fsshowcmd) 

怎么重新激活原来的窗体,让TEXT控件重新获取焦点?谢谢!!

------解决方案--------------------
以前用VFP做过一个输入法程序,思路供参考:

1、用API函数SetCapture实现绑定原VFP窗口;

*声明
Declare Long SetCapture in "user32" Long hwnd
Declare Long FindWindow in "user32" String lpClassName, String lpWindowName
*调用(VFP 7.0以上版本,7.0以下版本需要配合API函数FindWindow获取当前VFP程序句柄)
SetCapture(thisform.hwnd) 

2、启动程序(调用写字程序);

*调用写字程序

3、完成后,用API函数ReleaseCapture释放原VFP窗口绑定状态。

*声明
Declare Long ReleaseCapture in "user32" Long
*调用
ReleaseCapture()