2011-09-05 65 views
0

我在foxpro 2.5中有一個程序,我有一個在VB6.0中開發的.exe文件。 我的vfp程序是一個基於dos的程序,我們在windows xp上運行,我們在xp中啓動dos提示符並運行我們的vfp程序。 我的問題是,當我用參數調用這個程序時,它終止並且沒有結果返回。 我的參數長度超過110字符如何從foxpro 2.5程序調用VB6.exe

所以我怎麼能調用一個.exe文件的FoxPro與放慢參數,其中 參數是字符串,它的長度超過110個字符

它似乎是記憶問題有人告訴我如何管理它 thnx

+0

寫呼叫到一個文件,並打開從FoxPro文件? – CodingBarfield

+0

你知道參數長度是問題嗎? – Joe

+0

可能是參數長度有問題,但我怎麼能用我現有的參數調用該程序 –

回答

2

你不說你是如何從FoxPro調用VB6程序,但運行命令應該工作。以下是從Visual FoxPro 7,但應適用於FoxPro 2.5。

執行外部操作命令或程序。

RUN [/ N] MS-DOSCommand | ProgramName中 - 或 -

! [/ N] MS-DOSCommand | ProgramName參數MS-DOSCommand指定要執行的MS-DOS命令的 。有關可用的MS-DOS命令的更多信息,請參閱MS-DOS文檔以瞭解更多 信息。 ProgramName指定要運行的程序或應用程序的 。您可以指定一個基於Windows的或基於MS-DOS的程序或應用程序。/N指定NOWAIT。包含 字母N以執行另一個基於Windows的應用程序。備註 您可以在命令窗口內或從 程序中發出RUN。

注意要使用RUN,您必須在當前目錄中具有操作系統文件Command.com ,或者它必須位於MS-DOS的COMOS參數可以找到它的地方。有關COMSPEC的更多信息,請參閱 您的MS-DOS文檔。警告不要使用RUN從Visual FoxPro中運行重新組織程序(如CHKDSK)的磁盤 。 這些程序修改磁盤的內容的方式,可以防止 Visual FoxPro中無法正常運行。 RUN和可視FoxPro
當RUN被用於可視FoxPro之外運行的程​​序,它搜索 用於從FoxPro稍微不同的方式爲MS-DOS程序。

如果您在RUN中指定的程序沒有擴展名,則視頻 FoxPro首先使用您指定的名稱沿着MS-DOS路徑查找程序信息文件 (PIF)。 PIF允許您在Windows下運行非Windows 程序。您可以爲程序指定參數, 程序是在窗口中運行還是在全屏中運行,爲程序分配的內存量爲 等等。

如果找到該PIF,在PIF指定的程序與 所述PIF參數執行。如果沒有找到PIF,則MS-DOS路徑然後 以您指定的名稱搜索可執行文件。

當沒有找到PIF時,Visual FoxPro使用FOXRUN.PIF,在Visual FoxPro目錄中安裝了PIF 。 FOXRUN。PIF被配置爲在窗口中運行 程序。您可以修改FOXRUN.PIF以運行其他配置中的程序 。

的Windows 2000徽標認證。如果您計劃提交認證您的應用程序 ,你不應該使用run命令, 因爲它可能違反以下系統組策略 要求。

「只運行許可的Windows應用程序 - 您的應用程序不能 啓動任何應用程序不在此列表中注意啓動通過COM應用程序時,這並不 申請如果您使用 的ShellExecuteEx,Windows 2000將執行此檢查。自動「。 相反,您應該使用帶有ShellExecuteEx.API的DECLARE DLL。

FOXRUN.PIF Foxrun.pif允許您在Visual FoxPro中執行MS-DOS®和Windows® 程序和命令。 Foxrun.pif必須在 與Visual FoxPro中的Vfp7.exe相同的目錄中。

/N意味着NOWAIT。包括字母N以執行另一個基於Windows的 應用程序。例如,下面的語句將打開Windows 字符映射表附件:

!/N CHARMAP.EXE下面的例子從Windows控制面板打開Windows的顏色選擇器 :

!/N CONTROL COLOR使用RUN/N或 執行的基於Windows的應用程序!/N的行爲與通過Windows資源管理器打開 或從「開始」菜單中選擇「運行」時應用程序的行爲相同。 使用標準的Windows操作,您可以在應用程序和Visual FoxPro或FoxPro之間切換 Windows。

可以包括一個可選的數值後,立即/ N來 指定的基於Windows的應用程序的打開方式。不要在/ N和數字值之間包含任何空格 。下表列出了 數值可以包括和打開時介紹的基於Windows的應用程序 的狀態。

值應用程序屬性1個的活性和正常大小2主動和 最小化3主動和最大化4無活性的並且正常大小7 非活動和最小化的

VisualFoxPro中運行MS-DOS程序缺省情況下,運行FOXRUN.PIF 窗口中指定的外部MS-DOS程序。而MS-DOS程序或命令 運行時,該窗口的標題是FoxPro運行 命令。在Visual FoxPro中,外部程序或命令完成執行後,FoxPro運行命令窗口關閉 。

您可以使用Windows PIF編輯器自定義Foxrun.pif。您可以 編輯PIF以指定「非活動FoxPro運行命令」窗口是 左邊打開還是關閉(在Visual FoxPro中默認),並且退出時關閉 窗口複選框。您還可以通過選擇全屏幕在全屏中打開 的外部程序;爲程序分配內存; 等。

內存注意事項默認情況下,Foxrun.pif會爲運行外部命令或程序分配至少爲內存256KB的內存。如果 沒有免費的常規內存256K,則Visual FoxPro將顯示一條 錯誤消息。爲了解決這個問題,請嘗試以下的一種或兩種:

關閉應用程序和文件,以騰出更多的內存。編輯 Foxrun.pif可減少KB所需的內存量 文本框。如果外部命令需要超過256K,MS-DOS FoxPro運行命令窗口中顯示一條錯誤消息。若要更正 此操作,請編輯您的Foxrun.pif以增加KB Required文本框中所需的內存量 。

+0

非常多謝謝MR.Dave 這篇文章會真的幫我 –

+0

它似乎是短內存問題 告訴我如何增加memrory運行一個外部exe程序 我們正在使用Windows XP。和我們的foxpro程序是基於DOS的 我們在Windows XP中lanch ms dos然後我們啓動我們的vfp程序並在vfp中調用外部exe文件 –