我正在为我正在制作的文件信息程序寻找一种方法,以检查哪些已安装程序使用特定扩展名(用户在运行时选择),因为我发现多个程序可以使用相同的扩展名。我知道这与注册表中的 HKEY_CLASSES_ROOT 文件夹有关,但我似乎无法找到一种简单的方法来获取此信息。有吗?
编辑:
对不起,澄清:
我的程序将检查用户打开的文件的文件扩展名。我希望程序能够检查计算机上安装的程序处理指定的扩展名。
例子:
用户打开文件“file.txt”我希望我的程序能够说“extension = .txt Default program = notepad.exe”
我知道这些值保存在注册表的 HKEY_CLASSES_ROOT 中,但每个扩展都有不同的文件夹和值。我无法编写一行代码告诉程序在“n”点检查注册表,因为我找不到任何要遵循的默认文件夹层次结构。
(例如:.txt 有 3 个文件夹,一个名为 ShellNew 的文件夹有一个名为 itemName 的值,它指定 notepad.exe,.cpp 有两个文件夹但没有一个名为 ShellNew,但基本文件夹有一个名为 default 的值,上面写着“VisualStudio .cpp.11.0" 但它没有指定 exe 文件或任何东西)