私はたくさんの検索をしましたが、私は正しい答えを見つけられません。Delphi7から.batファイル(RandomApp.exeを開くなど)を正しく開く方法は?
ディレクトリ:
プロジェクト(このフォルダには、Delphiコードと "RunThis"
RunThis
- RandomApp.exe
- 実行というフォルダが含まれています。バット
- CONFIG.TXT
run.batをコード
start %cd%\RandomApp.exe
pause
デルファイ7(ボタンのクリックでこのコードを実行します。)
ShellExecute (application.handle, 'open', 'cmd', PChar('cmd.exe /c RunThis\Run.bat'), nil, SW_MAXIMIZE
もしIディレクトリに 'cmd.exe/c'部分を追加しないと、Delphiは自分のコードを一切使わずにcmdを開きます。私が 'cmd.exe/c'を追加すると、cmd.exeを実行しなければならないのと同じように、それはRun.batを正しく開きます。
Windowsでこのエラーが表示される: Windowsでは「C:\ Project \ RunThis \ RandomApp.exe」が見つかりません。正しく名前を入力してから、もう一度やり直してください。
これについて面白いのは、私がRun.batをダブルクリックするだけで、それは完璧に実行されるということです。しかし、Delphiで開くと、このエラーが表示されます。 Run.batの現在のアドレスに問題があったと思った。だからではなく、というのが:
start %cd%\RandomApp.exe
ちょうど、追加する私はデルファイ7を得たときだけのようなプログラムを直接開く:
ShellExecute(Handle, 'open', PChar('RunThis\RandomApp.exe'),null, null, SW_SHOWNORMAL) ;
start RandomApp.exe
は私ではなく、完全なカレントディレクトリを使用
"Config.txt"が見つかりませんでした。 RandomApp.exeはすべての設定を保存するテキストファイルを使用します。
また、Run.batまたはRandomApp.exeをクリックするだけで、両方が完全に実行されます。問題は、コードで開くときです。私はそれがディレクトリと関係があると感じているが、よく分からない。
ありがとうございました。
PS:実行中のWindows 10.
なぜあなたはプロセスを作成するためのスクリプトを実行するために、CMDプロセスを作成するためにシェルを求めるだろう。なぜプロセスを作成しないのですか? 4ステップを1に変えてください。 –
@DavidHeffernanお返事ありがとうございました。希望のアドバイスへのガイダンスやリンクが含まれていると、あなたの答えがはるかに役立つことに注意してください。あなたができるなら、そのようなことを私に助けてください?ありがとうございました。 – user3215933
CreateProcessを呼び出し、実行可能ファイルへのパスを渡します。 –