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