関連するアプリを使用して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);
またはこれ:
Process.Start(file);
ここで、両方の例の文字列file
は、開こうとしているファイルへのフルパスを表します。これで、 ACDSeeアプリの(jpg)画像を除いて、すべてが正常に機能しています。Irfanviewアソシエーションはうまく機能し、MSOfficeのドキュメントも同様です。acdseeに関連付けられたjpg画像を開こうとした後、通知領域でacdseeを実行するだけで、ファイルは開きません。
* .jpg画像のレジストリCLASSES_ROOTに、関連付けられたアプリとしてACDSee.JPG値があり、このキーの下にシェル->開く->コマンドパスがあることを発見しました。
"C:\Program Files\ACD Systems\ACDSee\ACDSee.exe" /dde
そして、私はこの奇妙なこと/dde
が理由であり、私がファイルを開くことができない理由だと思います。同じregキーシェル->開くに値のあるDDEExec
キーエントリがあることに気づきました[open("%1")]
Irfanビューまたはその他のチェック済みアプリの場合、ddeexecはなく、次のような通常のコマンドだけです。
"C:\Program Files (x86)\IrfanView\i_view32.exe" "%1"
%1をファイル名に交換した後、コマンドラインから実行できますが、コマンドラインのacdseeエントリからコマンドを実行できませんでした:(
だから私の質問は、ダブルクリック、標準、そしてこれによってエクスプローラーにあるのと同じようにすべてのファイルを実行するようProcessStartInfo
にオブジェクトを設定するにはどうすればよいですか?私が知っておくべき他の何かがありますか?私のENに感謝し、申し訳ありませんDDEExec
DDEExec
更新:この質問はまだ賛成票を獲得しているので、受け入れられた回答が機能することを明確にしたいと思います。古いバージョンのACDSeeでのみ問題が発生し、Process.Start
コマンドやjpg
拡張機能では問題が発生しませんでした。