2016-11-30 6 views
5

どのようにしてC#コードでexeファイルを起動できますか? だから私は、この持っている:パスの場所を指定せずに.exeファイルを起動するC#

Process.Start(@"C:\Program Files (x86)\Photoshop\Photoshop.exe"); 

をしかし、パスは、他のマシンに異なる場合があります。だから、別の方法で.exeを実行するためのアイデアはありますか?

ありがとうございます!

+0

Program Filesディレクトリへのパスをハードコーディングすることは避けられますが、それでも問題は解決しません。 Photoshopを別のディレクトリにインストールしているかもしれませんが、Photoshopをインストールしていない可能性もあります。 –

+2

Photoshopのインストールパスをレジストリでスキャンします。 – Abion47

+0

@ Abion47すべてのプログラムがレジストリにインストールディレクトリを格納しているわけではありません。 – BradleyDotNET

答えて

7

私が見つかりました。溶液。

Activator.CreateInstance(Type.GetTypeFromProgID("Photoshop.Application")); 
1

いいえ、場所を知らなくてもexeファイルを実行することはできません。

Process.Start("notepad.exe"); 

作品:実行ディレクトリが理由であるPATH環境変数、である場合

「例外」です。

+0

これは技術的に真実ですが、ハードコーディング以外にもパスを取得する方法は他にもあります。 – Abion47

+0

@ Abion47確かに、特別なフォルダクラスなどがありますが、それはどこに位置しているかにかかわらず、exeを起動する基本的な問題を過ぎていません。 – BradleyDotNET

0

私が正しくあなたを理解している場合、実行ファイルがこれだけプロジェクトディレクトリに入れて(デフォルトは相対パスで)任意のパスを指定しない、リーチである:

Process.Start("Photoshop.exe"); 
+0

Photoshopの横にインストールされているアプリを書いていない限り、非常にそうは思わない – BradleyDotNET

+0

@ Dr.Haimovitz私はあなたのコードですべてのappaを実行することはできないと思います。あなたがパスなしで実行することができるメモ帳のようないくつかのアプリがあります! –

関連する問題