问题描述
- 双击文件,会把什么参数传给打开方式?怎么使用这些方式。
- 我想用c++写一个类似于记事本的功能。做到双击就可以打开自定义类型的文件。可是参数传不过去,根本打不开呀。
解决方案
双击文件,会把调用的文件作为argv[1]传递给程序。你可以写个最简单的小程序测试下。先看看你的注册表的设置对不对。
解决方案二:
假设你说的是Windows平台:这和文件关联有关,文件关联是如何定义的,系统就怎么传输,文件关联有2个,一个是hkey_classes_root,一个是local_user下的class,分别是全局和当前用户,如果你的程序申请了管理员权限,那么都可以修改,否则只能修改当前用户的。但是从w8开始(好像是吧)系统只是将上面两个关联当作参考,就算修改了,系统还可以从其他地方确定关联的程序,然后给你个通知:你新安装了一个可以打开xxx文件的应用,如何做?有你设置的关联,也有其他的可以打开文件应用。
废话了这么多,回到整体,用regedit演示下,在classroot下创建你的扩展名,比如.xyz,然后将其默认项修改为xyzfile,创建xzyfile,依次创建shell,open,command,然后设置为你的程序(空格)%1,然后呢的程序可以从命令行中取得文件路径。
上面都是手机手打,可能有错误,建议先搜索注册表用.txt之类的文件分析下
解决方案三:
默认打开指定扩展名的文件,这个是写在注册表里固定的吧?好比用记事本打开一个.a的文件,第一次打开,选择记事本,然后选择始终用这种方式打开,这个时候是在注册表里做了记录的
时间: 2024-10-30 16:59:50