我正在使用C#开发一个面向.NET Framework 2.0的应用程序,我需要能够找到用于打开特定文件类型的默认应用程序。我知道,例如,如果您只想使用该应用程序打开文件,您可以使用以下内容:System.Diagnostics.Process.Start( "C:\...\...\myfile.html" );在默认浏览器中打开HTML文档,或System.Diagnostics.Process.Start( "C:\...\...\myfile.txt" );在默认文本编辑器中打开文本文件。但是,我希望能够在默认文本编辑器中打开不一定具有.txt扩展名的文件(例如),因此我需要能够找到打开的默认应用程序。 txt文件,这将允许我直接调用它。我猜测有一些Win32 API,我需要P / Invoke才能做到这一点,但是对谷歌和MSDN的快速浏览并没有发现任何有趣的东西; 我确实找到了大量完全不相关的页面,但没有像我在寻找的那样。
3 回答
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
您可以在注册表部分中HKEY_CLASSES_ROOT查看扩展和操作详细信息。有关此文档的文档位于MSDN上。或者,您可以使用IQueryAssociations接口。
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
您只需查询注册表即可。首先获取HKEY_CLASSES_ROOT \ .ext下的Default条目
那会给你一个类名。例如.txt的默认值为txtfile
然后打开HKEY_CLASSES_ROOT \ txtfile \ Shell \ Open \ Command
这将为您提供使用的默认命令。
- 3 回答
- 0 关注
- 608 浏览
添加回答
举报
0/150
提交
取消