クライアント(winformsアプリ)にはファイルブラウザが含まれています。シェルのデフォルトハンドラを使って、選択したファイルを開くことができるようにしたいと思います。それ、どうやったら出来るの?私は、レジストリではなくWin32 APIを使うべきだと読んだことがあるが、私は.NETだけを含むソリューションを好むだろう。シェルのデフォルトハンドラを使用してファイルを開くにはどうすればよいですか?
答えて
編集する場合:新しい、より単純な答え。
実際にはProcess.Start(filename)
を使用できます。これはdocs for Process.Start
で指定されています。その ファイル名を指定してプロセスを開始する
は Windowsのスタートメニューのファイル名を指定して実行]ダイアログボックスで 情報を入力することに似ています。したがって、 ファイル名は 実行可能ファイルを表す必要はありません。拡張子が の ファイルタイプであれば、システムにインストールされている アプリケーションに関連付けられている可能性があります。たとえば のファイル名を使用すると、メモ帳、 としてエディタでテキスト ファイルを、関連付けられていたり、単語 処理ツールと associated.docファイルを持っている場合、それは.DOCを持つことができるかどうか.TXT 拡張子を持つことができますMicrosoft Wordのようなものです。同様に、 実行ダイアログボックスで 実行可能ファイル名を受け入れる方法と同じ方法で、 .exe拡張子の有無にかかわらず、.exe拡張子 はfileNameパラメータではオプションです。 たとえば、fileName パラメータを "Notepad.exe"または "Notepad"に設定できます。
EDIT:オリジナル、複雑な答え:あなたは「実行可能」としてファイルをProcess.Start
を使用して指定した場合
はUseShellExecute = true
それだけで動作します。例:
using System;
using System.Diagnostics;
class Test
{
static void Main()
{
ProcessStartInfo psi = new ProcessStartInfo("test.txt");
psi.UseShellExecute = true;
Process.Start(psi);
}
}
これは、メモ帳でtest.txtを開きます。
実際、UseShellExecute=true
がデフォルトですが、確かに必要なので、明示的に指定して読者に明確にしたいと思います。
わからないそのOK
System.Diagnostics.Process.Start(filePath);
System.Diagnostics.Processは、shell32.ShellExecuteの周囲に.Netネイティブラッパーを提供します。
MSDNの両方のAPIとMSDNドキュメントの説明については、PInvoke.Netを参照してください。
- 1. Google Cloudシェルを使用してバケットファイルを開くにはどうすればよいですか?
- 2. ファイル名だけを使用してC++でファイルを開くにはどうすればよいですか?
- 3. ファイルをXMLとして開くにはどうすればよいですか?
- 4. シェルでセカンダリウィンドウを開くにはどうすればいいですか?
- 5. Xamarin iOS:デフォルトのリーダーを使用して.pdfファイルを開くにはどうすればよいですか?
- 6. Goで相対パスを使用してファイルを開くにはどうすればよいですか?
- 7. Android Nougatでインテントを使用してPDFファイルを開くにはどうすればよいですか?
- 8. Android:OpenCV C++を使用してファイルを開くにはどうすればよいですか?
- 9. データビューパネルを使用してsqliteファイルを開くにはどうすればよいですか?
- 10. Linuxのコマンドラインから新しいウィンドウ(シェル)を開くにはどうすればよいですか?
- 11. C++を使用してスタートアップ時に新しいウィンドウを開くにはどうすればよいですか?
- 12. Scrapyを使用してファイルストリームを読み込み用に開くにはどうすればよいですか?
- 13. Googleドライブでファイルを開くにはどうすればよいですか? - Cordova
- 14. Google Datalabでgzipファイルを開くにはどうすればよいですか?
- 15. アプリケーションでファイルを開くにはどうすればよいですか?
- 16. IDEAScriptで[ファイル]ダイアログボックスを開くにはどうすればよいですか?
- 17. .appファイルをobjective-cで開くにはどうすればよいですか?
- 18. IDLEで.rarファイルを開くにはどうすればよいですか?
- 19. コマンドライン引数でファイルを開くにはどうすればよいですか?
- 20. jQueryを使用せずにJavaScriptでJSONファイルを開くにはどうすればよいですか?
- 21. サファリ拡張を使用して新しいプライベートウィンドウを開くにはどうすればよいですか?
- 22. JavaScriptを使用して新しいタブ/ウィンドウを開くにはどうすればよいですか?
- 23. jQueryを使用して新しいページを開くにはどうすればよいですか?
- 24. 文字列を使用して新しい画面を開くにはどうすればよいですか?
- 25. EnvDTEを使用して新しいビジュアルスタジオインスタンスを開くにはどうすればよいですか?
- 26. jQueryを使用して新しいウィンドウを開くにはどうすればよいですか?
- 27. Antを使用すると、ブラウザでファイルを開くにはどうすればよいですか?
- 28. スクリプトを開くにはどうすればよいですか?
- 29. WebViewを使用してAndroidでローカルストレージにあるドキュメントを開くにはどうすればよいですか?
- 30. adbシェルを使用してAndroidアプリケーションのpidを取得するにはどうすればよいですか?
'Process.Start(" C:\ temp \ test.xlsx ");' Excelがインストールされている場合*** *** xlsxファイルを開く**。インストールされていない場合、私は知らない。 – Kiquenet