文章編號: 314106 - 檢視此文章適用的產品。
如需本文的 Microsoft Windows 2000 版本,請參閱 165214
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您,如何疑難排解 Windows 中的 MS-DOS 程式。

其他相關資訊

測試 Ntvdm 子系統

當 MS-DOS 程式發生問題時,請先測試 Windows 虛擬 DOS 機器 (NTVDM,Windows Virtual DOS Machine) 子系統。您可以使用 Command.com 公用程式,來測試 NTVDM 子系統是否正常運作。如果要啟動 Command.com,請執行下列步驟:
  1. 按一下 [開始] 按鈕,再按一下 [執行]
  2. [開啟] 方塊中,輸入 command.com,然後按一下 [確定]
這樣就會開啟命令提示字元視窗。如果這個命令沒有正常地運作,就表示 NTVDM 子系統發生問題,請檢查下列項目:
  • 檢查 SystemRoot%\System32 資料夾中的 Config.ntAutoexec.nt 檔案是否有非標準的設定。

    使用 REM 陳述式標註所有項目 (除了下列預設項目之外):
       Config.nt
       ---------
       dos=high, umb
       device=%SystemRoot%\System32\Himem.sys
       files=20
    
       Autoexec.nt
       -----------
    
       lh %SystemRoot%\System32\Mscdexnt.exe
       lh %SystemRoot%\System32\Redir
       lh %SystemRoot%\System32\Dosx
       lh %SystemRoot%\System32\Nw16 (only if CSNW is installed)
       lh %SystemRoot%\System32\Vwipxspx (only if CSNW is installed)
    						
    或者,您也可以執行另一種方法,就是將 Windows 光碟中的 Autoexec.nt_ 及 Config.nt_ 展開至 %SystemRoot%\System32 資料夾中。
  • 按下 CTRL+SHIFT+ESC 以啟動「工作管理員」,然後關閉所有執行中的程式,並且確定沒有其他 NTVDM 處理程序正在執行。
  • 防止所有程式在啟動時執行, 只讓下列三種位置中的程式在啟動時執行:啟動群組、登錄中 Run 和 RunOnce 行,以及 Win.ini 檔案中的 "run=" 和 "load=" 行。您可以依照下列檢查這些位置:
    1. 「啟動」群組是本機硬碟上的資料夾,位於下列位置:
      • %SystemRoot%\Profiles\user_name\Start menu\Programs
      • %SystemRoot%\Profiles\Default user\Start menu\Programs
    2. Run 及 RunOnce 行位於登錄中的下列登錄機碼下:
      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\
    3. 您可以使用「記事本」編輯 Win.ini 檔案。Win.ini 檔案位於 %SystemRoot% 資料夾中。
  • 檢查 %SystemRoot%\System32 資料夾中的 NTVDM 系統檔案。 檢查下列檔案,並查看大小及日期,以確認檔案的版本是正確的:
       Ntio.sys
       Ntdos.sys
       Ntvdm.exe
       Ntvdm.dll (Windows NT 3.1 only)
       Redir.exe
    					
  • 與 NTVDM 子系統相關的登錄項目包括:
    • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment
      這個機碼會儲存 Config.sys 及 Autoexec.bat 檔案中的環境變數,以便在 Windows 中使用。
    • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ VirtualDeviceDrivers
      這個機碼會儲存 NTVDM 工作階段中所使用的裝置驅動程式。安裝裝置驅動程式時,Windows 安裝程式就會建立這些項目。

檢查特定程式的問題

下列函數無法在 Windows XP 中執行:
  • 支援所有 MS-DOS 函數,除了工作切換 API (應用程式發展介面) 函數以外。
  • 不支援封鎖模式裝置驅動程式。由於不支援封鎖裝置,因此也不支援可以處理封鎖裝置的 MS-DOS I/O 控制 (IOCTL) API 及 SETDPB 函數。
  • 插斷 10 函數 1A 傳回 0;所有其他函數是傳送至唯讀記憶體 (ROM)。
  • 不支援可以處理已禁止磁碟存取的插斷 13 呼叫。
  • 插斷 18 (ROM BASIC) 會產生說明不支援 ROM BASIC 的訊息。
  • 插斷 19 不會重新啟動電腦,但是可以完全關閉目前的虛擬 DOS 機器 (VDM)。
  • 不支援可以處理 DOSKEY 程式圖說文字 (AX = 4800) 的插斷 2F。
  • 不支援 Microsoft CD-ROM Extensions (MSCDEX) 函數 2、3、4、5、8、E 及 F。
  • x86 電腦上的 16 位元 Windows 子系統支援增強模式的程式,但是,並不支援 16 位元的虛擬裝置驅動程式 (VxD)。非 x86 電腦上的子系統會在精簡指令集電腦 (RISC) 上模擬 Intel 40486 指令集,而此指令集可以讓電腦執行增強模式的程式,例如 Microsoft Visual Basic。
這表示 Windows 不支援需要無限制存取硬體的 16 位元程式。如果您的程式要求無限制存取硬體,就無法在 Windows NT、Windows 2000 或 Windows XP 中運作。

接著,您可以檢查 Autoexec.nt 及 Config.nt 檔案的設定是否正確。請務必嘗試使用本文中先前所列的預設設定。有些程式需要特殊的設定或驅動程式,才能在 Config.sys 或 Autoexec.bat 檔案中執行。在這種情況中,當您啟動程式時,可以選擇兩個選項來初始化這些檔案:
  • 在 %SystemRoot%\System32 資料夾的 Config.nt 及 Autoexec.nt 檔案中輸入這些行。
  • 建立啟動這個程式時所要執行的新 Config 及 Autoexec 檔案。如果要執行這項操作,請依照下列步驟執行:
    1. 建立檔案,並且以 .nt 做為副檔名,將檔案儲存在 %SystemRoot%\System32 資料夾以外的資料夾中 (這些檔案通常會儲存在與程式相同的資料夾中)。
    2. 在桌面上按一下滑鼠右鍵,指向 [新增],再按一下 [捷徑]
    3. [輸入項目的位置] 方塊中,輸入您想要執行的檔案的完整路徑,然後按一下 [下一步]
    4. [輸入這個捷徑的名稱] 方塊中,輸入捷徑的名稱,再按一下 [完成]。如此就可以在桌面上建立新的捷徑。
    5. 用滑鼠右鍵按一下新的捷徑,再按一下 [內容]
    6. [程式] 索引標籤上,按一下 [Windows],開啟指向 Autoexec 及 Config 檔案路徑的對話方塊。
    7. 輸入您所建立的檔案的完整路徑,然後在兩個對話方塊中按一下 [確定]
    按一下這個圖示,就可以執行為程式所指定的 Autoexec 及 Config 檔案。這些限制會受到先前所列與 MS-DOS 程式相同的限制。
程式的內容中還有其他的設定。如果您的程式無法正確地運作,請檢查所有的索引標籤,並確定程式設定均設定為符合製造商的規格。 如果程式仍然無法運作,請聯絡程式的廠商,以確認 Windows 是否支援程式。

如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
171940 MS-DOS application I/O operations cause floppy drive access
156687 Entries in CONFIG.NT or AUTOEXEC.NT may cause NTVDM errors
102418 NTVDM error:There is no disk in the drive
142026 Err:'Hidden console of WOW VDM' running 16-bit or DOS app
本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。Microsoft 不以暗示或其他方式,提供與這些產品的效能或可靠性有關的保證。

屬性

文章編號: 314106 - 上次校閱: 2004年6月10日 - 版次: 1.0
這篇文章中的資訊適用於:
  • Microsoft Windows XP Home Edition (家用版)
  • Microsoft Windows XP Professional Edition (商用版)
關鍵字:?
kbinfo kbtshoot kbregistry kbenv KB314106
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com