George,
When I was working on this last summer I did this:
declare long GetDesktopWindow in "win32api"
local hDCScreen
hDCScreen = GetDesktopWindow()
this.Value = ShellExecute( hDCScreen, ;
this.mcOperation, ;
this.mcDocApp, ;
this.mcParameters, ;
this.mcDefaultDir, ;
this.mnShowCommand )
>Yep, you can use ShellExecute() to run a DOS program, just pass it the proper parameters. You really don't need a window handle. Be sure that the command is "open" and the show state is one that will display the window (not hide it).