c++ - Windows 如何知道用什么程序打开文件?

标签 c++ windows mfc

我刚刚注意到,当我在计算机上查看 .sln 文件时,有些文件有 v7.1 图标,有些有 v9 图标,有些有 v10 图标(取决于什么创建它们的 Visual Studio 版本)。似乎 Windows 区分哪些文件获得哪些图标,可能是通过某种“MIME 类型”来区分文件的扩展名。

如果两种文件类型共享一个扩展名,我能否使用该功能来检测用户从默认 MFC 另存为对话框中选择的文件类型?

最佳答案

对于 Visual Studio,.sln 文件与 Microsoft Visual Studio Version Selector 相关联,在我的机器上,它安装在 "C :\Program Files\Common Files\microsoft shared\MSEnv\VSLauncher.exe"

此可执行文件必须解析解决方案文件以确定版本,然后向资源管理器显示正确的图标。

在一般情况下,给定文件类型的文件关联存在于注册表中,位于 HKEY_CLASSES_ROOT 下。

但在您的情况下,我认为您只需要阅读文件内容来确定它是哪一个。希望两者之间有一些容易区分的东西。

关于c++ - Windows 如何知道用什么程序打开文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16428700/

相关文章:

c++ - 忽略第一个元素的插入排序算法

c++ - 什么是 (x & 1) 和 (x >>= 1)?

c++ - UDP 客户端 - 发布版本仅在 VS 2005 中不起作用

c++ - 如何捕获 EM_SHOWBALLOONTIP CEdit 消息?

c++ - 当您想试验 C++0x 特性时,最好使用什么编译器?

c# - MS VC++ 运行时库错误运行托管 C# 应用程序

python - Windows 8.1 上使用 Django 的 manage.py runserver 出错

windows - JMeter 负载测试 - HttpHostConnectException : Connection refused: connect on windows server 2012

windows - 实时HTTP流写入控制台

c++ - MFC/WIN32/C++ : How to dispatch messages while doing a computationally intensive operation?