2

ファイルパスでいっぱいのリストボックスがあります。ファイルをダブルクリックしたときにファイルのデフォルトプログラムを開く方法を知っている人はいますか?たとえば、リストボックスの項目の1つに「c:\ test.txt」と表示されている場合、メモ帳でどのように開きますか?また、「c:\ inetpub \ wwwroot \ sitetest \ test.asp」の場合、デフォルトのaspエディターでどのように開くことができますか?ありがとう。

4

3 に答える 3

10

ファイル名をSystem.Diagnostics.Process.Start()メソッドに渡します

于 2010-01-04T20:26:54.353 に答える
2

Process / ProcessStartInfoクラスを使用して、Windowsのデフォルトのアプリケーションハンドラーでファイルを実行できます。

例えば:

ProcessStartInfo psi = new ProccessStartInfo();
psi.FileName = "myfile.txt";
Process p = new Process();
p.StartInfo = psi;
p.Start();

p.Start()は、処理する必要のある例外をスローする可能性があり、ウィンドウのバージョンが異なれば、動作もわずかに異なることに注意してください。ファイルタイプのデフォルトハンドラーがない場合、Win7 / Vistaはアプリケーションセレクターダイアログをポップアップすることを知っていますが、一部のバージョンでは、例外が発生するだけです。

于 2010-01-04T20:31:27.417 に答える
0

これは、Windowsエクスプローラからのダブルクリックをそのまま完全に模倣しているわけではありません。たとえば、AutoCADでは正しいバージョンが読み込まれますが、ファイルパスをProcess.Startに送信すると、ソフトロックライセンスマネージャーエラーが発生します。

System.Diagnostics.Process.Start(dwgFilePath);

Windowsエクスプローラーからのダブルクリックを完全にエミュレートするには、explorer.exeへのパスを渡す必要があります

System.Diagnostics.Process.Start("explorer.exe", dwgFilePath);
于 2018-03-14T23:56:19.237 に答える