関連するアプリケーションでC#アプリからファイルを開く際に助けを求めます。関連付けられているアプリケーションでファイルを開く
ProcessStartInfo pi = new ProcessStartInfo(file);
pi.Arguments = Path.GetFileName(file);
pi.UseShellExecute = true;
pi.WorkingDirectory = Path.GetDirectoryName(file);
pi.FileName = file;
pi.Verb = "OPEN";
Process.Start(pi);
またはこの:両方の例では、文字列file
を開こうとするファイルへのフルパスを表し
Process.Start(file);
は、私はこれを試してみました。今、ACDSeeアプリの(jpg)画像を除いて、すべてうまくいっています。 Irfanviewの協会もうまくいきます。 acdseeに関連付けられたjpgイメージを開こうとすると、通知領域でacdseeが実行され、ファイルは開かれません。
私は* .JPG画像のレジストリCLASSES_ROOTで、ACDSee.JPG値が関連付けられたアプリケーションとして存在し、このキーの下にシェル - >オープン>コマンドパスであることを発見:この奇妙な/dde
は私がファイルを開くことができない理由であることを
"C:\Program Files\ACD Systems\ACDSee\ACDSee.exe" /dde
と私の事。私は、同じREGの重要シェル - >開くイルファンビューまたは他の確認アプリddeexecがないの値を持ついくつかのDDEExec
キー入力[open("%1")]
、
"C:\Program Files (x86)\IrfanView\i_view32.exe" "%1"
のような普通のコマンドがあり実現しましたファイル名
だから私の質問は、私が設定できるか、である
ProcessStartInfo
オブジェクトはになります。がダブルクリックでエクスプローラに表示されるように、すべてのファイルが実行されるようにしてください。標準とこれはDDEExec
ですか?私が覚えているような何か他のものがありますか?DDEExec
?通常のダブルクリックが行うよう おかげで、私のENのため申し訳ありません
彼は既に 'Process.Start(file);'でそれを試したようです。 –
"私の質問では、ProcessStartInfoオブジェクトを設定して、エクスプローラのようにすべてのファイルをダブルクリックで確実に実行できるようにするにはどうすればいいですか?答えはそのとおりです。彼はコマンドライン引数を使っていましたが、私が見る限りでは、直接呼び出しはしません。 – Tigran
@Tigran Marioは正しいです、私が書いたように、私は第2の例としてあなたの提案を試みました...私はJPpgが開かれていないので、これが正しい解決策ではないことを明確に質問したいと思っていました! – Zavael