关于软件与文件关联的有关问题

关于软件与文件关联的问题
要做一个过滤的程序,默认的选项中,当给出一个程序的名字,即可获得与他关联的文件,比如VS2008 ,他的工程中就会有.h .cpp .rc .lib .exp .pdb 等等!当给出一个工程的名字时!这些相关的文件都会列出!怎样获得与一个程序有关的所有文件呢!是否可以用注册表实现?或者其他的方案!

------解决方案--------------------
信息都在注册表里,Windows的图形化更改文件关联的接口也是改注册表
------解决方案--------------------
你是说目录遍历文件啊
还是程序依赖的文件啊

还是什么意思
------解决方案--------------------
注册表可以,也可以写外部文件,xml活着ini 都可以实现。。
------解决方案--------------------
我只知道Filemon之类的工具可以做

可以看看Filemon用的啥api……
------解决方案--------------------
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

C:\new>help assoc
显示或修改文件扩展名关联

ASSOC [.ext[=[fileType]]]

.ext 指定跟文件类型关联的文件扩展名
fileType 指定跟文件扩展名关联的文件类型

键入 ASSOC 而不带参数,显示当前文件关联。如果只用文件扩展
名调用 ASSOC,则显示那个文件扩展名的当前文件关联。如果不为
文件类型指定任何参数,命令会删除文件扩展名的关联。

C:\new>help ftype
显示或修改用在文件扩展名关联中的文件类型

FTYPE [fileType[=[openCommandString]]]

fileType 指定要检查或改变的文件类型
openCommandString 指定调用这类文件时要使用的开放式命令。

键入 FTYPE 而不带参数来显示当前有定义的开放式命令字符串的
文件类型。FTYPE 仅用一个文件类型启用时,它显示那个文件类
型目前的开放式命令字符串。如果不为开放式命令字符串指定,
FTYPE 命令将删除那个文件类型的开放式命令字符串。在一个
开放式命令字符串之内,命令字符串 %0 或 %1 被通过关联调用
的文件名所代替。%* 得到所有的参数,%2 得到第一个参数,
%3 得到第二个,等等。%~n 得到其余所有以 nth 参数打头的
参数;n 可以是从 2 到 9 的数字。例如:

ASSOC .pl=PerlScript
FTYPE PerlScript=perl.exe %1 %*

允许您启用以下 Perl 脚本:

script.pl 1 2 3

如果不想键入扩展名,则键入以下字符串:

set PATHEXT=.pl;%PATHEXT%

被启动的脚本如下:

script 1 2 3

C:\new>