2017-08-13 5 views
0
cd "..\..\..\Sound" 
start "" "mt32.exe" 
timeout /T 5 /nobreak > NUL 
cd ".\" 
SCIV.exe 

あなたがDOSBoxに精通しているなら、私はDOSBoxのフロント(D-Fend Reloaded)を使ってこのコードを含む.batを起動しています。タイムアウトコマンドを待つ前にバッチファイルが実行され続けているのはなぜですか?

  1. バッチファイルは、ディレクトリを変更し、(MT-32シンセサイザーを開きますAutoHotkeyをスクリプトである)mt32.exeを起動
  2. 5秒
  3. 用のバッチファイルを待ち:何が起こることになっていますと、これはあります
  4. バッチファイルは、スペースクエストIIIは、実際に何が起こるか

ゲームのためのexeファイルである(独自のディレクトリに変更し、SCIV.exeを起動mt32.exeを開始した後、それが正しい過ぎて吹くということですtimeoutコマンドとsゲームをタートします。 D-Fend Reloaded(フロントエンド)がバッチファイルをあらかじめロードして、それを独自の条件で実行しているのだろうか?

とにかく、実際にタイムアウトを強制してゲームが開始される前に発生することを確認する方法があるかどうかは疑問です。それはかなり重要です。ポイントは、ゲームが始まる前に完全に初期化するのに十分な時間がmt32シンセサイザーにあることを確認することです。これは動作するかもしれ

+0

を私はバッチファイルではあまり良くないんだけど、(1)あなただけのアプリ名の前にそれを追加し、ディレクトリを変更する必要はありません: '」.. \。 。\ .. \ Sound \ mt32.exe "'(2)バックグラウンドで 'mt32.exe'を起動する方が良いです:' start/d'-HTH;)。 –

+1

'timeout/T 5/nobreak 0 >> CONIN $> NUL'を試してください。 DOSBoxが通常のコンソールを使用しない場合、timeout.exeは失敗し、すぐに戻ります。隠しコンソールがある場合、後者のコマンドはstdinを入力バッファCONIN $にリダイレクトしようとします。読み書きアクセスが必要なので、追加モード(つまり '' '')を使います。 – eryksun

+1

@eryksunの解決策がうまくいかない場合は、 'timeout'実行ファイル(普通はc:\ windows \ system32 \ timeout.exe')へのパスを明示的に指定してみてください。 – Magoo

答えて

1

ping 127.0.0.1 -n 6 >nul 
+0

@Mofi、Windows 7+はlocalhostを定義するhostsファイルに依存しなくなりました。デフォルトのhostsファイルにはコメントのみが含まれています。 localhostはDNS解決によって検索されます。ホストのファイルに定義されていない場合は、値をハードコードします。もちろん、間違った設定が可能です。 – eryksun

+0

Thx Mofi、修正されました。 – Kriss7475

関連する問題