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

2021-04-20 02:12:45 字數 1830 閱讀 6435

代替 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  

#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)))  

return  

endif  

if gnexitcode != 0  

=msg_err("arj 壓縮出錯! arj 退出碼:"+alltrim(str(gnexitcode)))  

return  

endif

Docker Docker的Run命令使用時報錯

命令報錯 warning your kernel does not support swap limit capabilities,memory limited without swap.step 1 編輯 etc default grub檔案,將grub cmdline linux一行改為grub...

關於向Oracel儲存過程傳集合的代替方法

首先我們要把集合中的所有元素用字串相連,形成乙個長的字串.如下 這裡的arraylist裡面放的是id string ids foreach string str in list ids ids str 去掉最後面的逗號 ids ids.substring 0,ids.length 1 然後寫儲存過...

Linux系統設定修改ip位址最好用的方法

這裡我的虛擬機器是執行在vmware 10.0上,使用的linux伺服器是cenos6.4 64位。可以看到我當前的ip是192.168.93.88,因為我需要和另一台linux虛擬機器一起使用,所以必須得保證兩台虛擬機器在同乙個網段內,這樣才可以進行區域網通訊,所以這裡我需要將ip位址修改為192...