2017-10-28 6 views
-2

filename.exeという拡張子で知られているbutton_clickイベントからprocess.exeを開く必要があります。
可能ですか? 2つの言葉で私はgame.exeライブラリを作成する必要があり、filename.exeが見つかった場合は、filename.exeのプロセスを開始する必要があります。 私は、プログラムの場所の完全なパスをcostumerに尋ねることを避けたい、と私はブラウズのためにOpenFileDialog()を使いたいとは思わない。私は3日間ここで立ち往生した。したがってC#知られていない場所パスを持つプロセスを開く

filename.exe=textbox1.text 
SystemDiagnostic.Process(..).Start(filename.exe) 

ファイルとデバッグプログラムが同じディレクトリにある場合、ファイルのみが開きます。

再帰的な検索が必要ですか?ファイルにプロセスが見つかった場合はどうすればよいですか?@"C:\の中でfilename.exeを検索するにはどうすればよいですか?

ありがとうございます。悪い英語のために申し訳ありません。

+0

このファイルは、あなたまたは他のベンダーによって展開されていますか?あなたはそれがC:ボリュームにあるとはみなせません。 – kennyzx

+0

他のベンダー。ありがとうございました。 – user8847930

答えて

0

、それはそれのためのインストーラを作るためにあなた次第ですのようにそのファイルが、あなたによって展開されている場合は、その後、あなたは、単に

して起動することができ、PATH環境変数に、そのファイルのあるディレクトリを追加することができます
Process.Start(“filename.exe”) 

そのファイルへのフルパスを指定する必要はありません。

コントロールから外れていても、そのファイルの場所に関するトレースがある場合(たとえば、既知のベンダーからのもので、ファイルに既定の場所があるか、「InstallLocation」などがある場合など)レジストリにそのファイルの完全なパスを取得して起動することができます。

最後の手段は、そのファイルのディスク全体をスキャンすることです。しかし、これはあまりにも悪く、信頼性が低く、遅いです。私はこのアプローチに対して強く警告します。

最後のアプローチを選択する必要がある場合は、this postが便利です。間違ったファイルを呼び出すと、その名前を持つことになる場合に備えて、バージョン番号、パブリッシャーなどの他の属性をチェックすることを忘れないでください。