>lcACORDdef = SYS(5)+SYS(2003) >SET DEFAULT TO LEFT(hdir,RAT("\",hdir)-1) >*I can verify my default directory here is correct: c:\foxpro\vfp8 >IF FILE(tempfile) .and. FILE(pdffile) && returns .t. as it should >*llacordok = RunAndWait(xacordform+'.xfdf',' ',LEFT(hdir,RAT("\",hdir)-1)) > *--line below is the same as the line above hard coded it for testing > *--The only difference that I can see is that I am not passing a 2nd > *--second parameter in this case (no command line) > llacordok = RunAndWait('61NC.XFDF',' ','C:\FOXPRO\VFP8') > IF !llacordok > =MESSAGEBOX("Unable to print Acord Form.",0+16+4096,"ERROR") > ELSE > WAIT WINDOW "Finished Printing" NOWAIT > ENDIF >ELSE > =MESSAGEBOX("Unable to create Acord Form.",0+16+4096,"An ERROR Ocurred") >ENDIF >SET DEFAULT TO &lcACORDdef > >RETURN > >PROCEDURE RunAndWait (lcApp, lcCmdLine, lcdir) >=DECL() >#DEFINE INFINITE 0xFFFFFFFF >LOCAL lcStartupInfo, lcProcInfo, hProcess, ; > lnPrio, lnIBelieve1 >lnIBelieve1 = 1 && Don't remember what that was >lnPrio = 32 && Priority of Process=Normal >lcStartupInfo = CHR(68) + REPLI(CHR(0), 67) >lcProcInfo = REPLI(CHR(0), 16) >IF CreateProcess(0, m.lcApp+" "+m.lcCmdLine+CHR(0), 0,0,; > m.lnIBelieve1, m.lnPrio,; > 0, 0, @lcStartupInfo, @lcProcInfo) <> 0 > * process and thread handles returned in ProcInfo structure > hProcess = buf2dword(SUBSTR(lcProcInfo, 1,4)) > hThread = buf2dword(SUBSTR(lcProcInfo, 5,4)) > * waiting until the termination > = WaitForSingleObject(hProcess, INFINITE) > = CloseHandle(hThread) > = CloseHandle(hProcess) >ELSE > *!!!* This is where it returns .f. the result is 0 > RETURN .F. >ENDIF >RETURN > >PROCEDURE DECL >DECLARE INTEGER CreateProcess IN kernel32; > INTEGER lpAppName, STRING lpCmdLine, INTEGER lpProcAttr,; > INTEGER lpThrAttr, INTEGER bInhHandles, INTEGER dwCrFlags,; > INTEGER lpEnvir, INTEGER lpCurDir, ; > STRING @lpStInfo, STRING @lpProcInfo >DECLARE INTEGER GetLastError IN kernel32 >DECLARE INTEGER CloseHandle IN kernel32 INTEGER hObject >DECLARE INTEGER WaitForSingleObject IN kernel32; > INTEGER hHandle, INTEGER dwMilliseconds >RETURN > >FUNCTION buf2dword(lcBuffer) > RETURN ASC(SUBSTR(lcBuffer, 1,1)) + ; > ASC(SUBSTR(lcBuffer, 2,1)) * 256 +; > ASC(SUBSTR(lcBuffer, 3,1)) * 65536 +; > ASC(SUBSTR(lcBuffer, 4,1)) * 16777216 >RETURN > >Hi Tracy,