代替VFP的RUN命令的最好方法

代替VFP的RUN命令的最好⽅法
代替 VFP 的 RUN 命令的最好⽅法(VC6写的ShellExW.DLL,源程序ShellExW.CPP见我的主页)
ShellExW.CPP --- VC6 编译,⽣成⼀个供 VFP 等调⽤的 .DLL
代替 VFP 的 RUN 命令的最好⽅法:在 VFP 数据库应⽤程序设计中,经常需要调⽤⼀些以前在 MS-DOS 环境下运⾏的应⽤程序。这时候我们经常会想到 RUN 命令。利⽤ RUN 命令确实可以运⾏ MS-DOS 应⽤程序,但是却会跳出⼀个令⼈讨厌的⿊屏幕。曾有⼈提出
⽤ Win32 API 的 WinExec 来解决。但它和 RUN 命令⼀样也⽆法知道 MS-DOS 应⽤程序是否执⾏完成,⽆法取得 MS-DOS 应⽤程序的退出码(在 DOS 的 .BAT 中可⽤ IF ERRORLEVEL ... 检测)。使⽤本程序提供的函数ShellExecWait(),你可以运⾏ MS-DOS 应⽤程序或 Windows 应⽤程序直到其结束并取得其退出码,可以控制窗⼝是否显⽰和显⽰模式。
执⾏⼀个外部程序直到结束,返回结果码(0=ok)和外部程序退出码。
张钫如果外部程序要使⽤输⼊输出重定向,请写⼀个 .BAT
外部程序执⾏时窗⼝是否显⽰和显⽰模式由n_ShowWinMode参数指定,参见 VC6的 WINUSER.H:
#define SW_HIDE            0
#define SW_SHOWNORMAL      1
#define SW_NORMAL          1
#define SW_SHOWMINIMIZED    2
蚜虫的资料
PINGCO#define SW_SHOWMAXIMIZED    3
#define SW_MAXIMIZE        3
#define SW_SHOWNOACTIVATE  4
#define SW_SHOW            5
#define SW_MINIMIZE        6
水银肥肠#define SW_SHOWMINNOACTIVE  7
#define SW_SHOWNA          8
#define SW_RESTORE          9
#define SW_SHOWDEFAULT      10
#define SW_FORCEMINIMIZE    11
#define SW_MAX              11
VFP 调⽤举例:
DECLARE INTEGER ShellExecWait IN ShellExW.DLL ;
STRING lpProgName, STRING lpParms, ;
SHORT n_ShowWinMode, INTEGER @ExitCode
rc = ShellExecWait("../ARJ.EXE"+CHR(0),"A ../ARJ/"+c_SEL_DATE+".ARJ"+;
" ../OUTPUT/"+c_SEL_DATE+"*.*"+CHR(0),;
gnDOSpgmShowWinMode, @gnExitCode)
*出错处理
IF rc != 0
=MSG_ERR("调⽤ ARJ 压缩出错! 出错码:"+ALLTRIM(STR(rc)))
directdrawRETURN
ENDIF
IF gnExitCode != 0
=MSG_ERR("ARJ 压缩出错! ARJ 退出码:"+ALLTRIM(STR(gnExitCode)))
RETURN
刷式密封
ENDIF

本文发布于:2024-09-21 18:46:46,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/653865.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:程序   出错   结束
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议