高分求如何得到一个关联文件的路径?高手进

来源:百度知道 编辑:UC知道 时间:2024/05/12 12:49:24
我把txt文件关联到一个自己的exe文件打开(写注册表的文件关联),然后在用自己的exe文件调用notepad.exe打开这个txt文件。但我不知道那个txt文件路径在哪里可以得到啊?我知道应该是这个txt文件的地址作为参数传递给我的exe文件。但我不知道VC++中这个参数在哪里。
写注册表我会,我说的是已经成功调用了我的exe程序以后,我要怎么知道是哪个txt文件触发的我的exe程序。我好在调用notepad.exe来打开它。
我不是要做坏事,我只是想做一个txt的辅助程序。不然我干嘛要绑定txt呢!!!

这些信息保存在注册表里的

打开注册表的根键HKEY_CLASSES_ROOT

先是发现许多以.开头的扩展名

你耐心点找可以找到.txt这一项

单击它,右边出现的值列表里的默认写着"txtfile"

这便是.txt对用的文件类型了

你需要做的就是改变txtfile的打开方式

那么继续向下找到txtfile一项

打开这个键:txtfile\shell\open\command

右边的值列表里应该是这样写的:

C:\WINDOWS\notepad.exe %1

这就是文本文件的打开方式

C:\WINDOWS\notepad.exe是要运行的程序

%1表示第一个参数

你可以把它改成你自己想要的

这需要用到注册表的API函数

更改这个值就可以了

对补充的答复:

更改这个关联并不一定是做坏事

病毒一般更改的是可执行文件的打开方式

更改txt文件就无可厚非了

用我上面的方法更改关联到你的程序后

当操作系统打开txt文件时,假设文件是"C:\a.txt"

那么将使用如下的命令行:

"你的程序路径 C:\a.txt"

也就是说即将被打开的txt文件是你的程序的第一个参数了

你需要在你的程序中增加参数处理机制

C/C++的命令行程序可以使用argc和argv得到

GUI程序可以调用GetCommandLine来分析参数得到

Delphi中有ParamCount和ParamStr函数得到

VB中可以使用C