用不同的文本编辑器打开文件

| 显然这应该是可能的。例如,使用NOTEPAD或HxD打开和处理文件。但是,它们不是所有的文本文件吗?如何使用WINDOWS API来指定哪个文本编辑器打开文件并对该文件进行操作。它肯定不在\“ CreateFile \”中。     
已邀请:
希望我能理解您的问题...最简单的方法是启动所需的编辑器并将文件名作为参数传递,而不是“调用”文件(它将启动与程序关联的默认程序)文件类型)。 例如,
notepad.exe mytextfile.txt
gvim.exe mytextfile.txt
。 如果编辑器不在您的ѭ2上,则需要使用完整的路径文件名。     
您到底想做什么?你可以: 维护一个您希望安装的编辑器列表,并在系统的PATH中包含条目(不好的主意) 有一个要使用的编辑器,查询Windows注册表以找到编辑器的安装路径(使用
RegGetValue
),并使用
CreateProcess
启动编辑器(更好的主意) 查询注册表以获取给定文件类型的默认编辑器,然后使用
CreateProcess
启动该编辑器。 (最好的主意) 但这完全取决于您的目标是什么。 根据需求进行编辑 因此,就在C ++的同一页面上,您想要: 在C ++应用程序中使用命令行参数(文件名) 在任意编辑器中打开该文件 检测用户何时对该文件进行了更改 操作文件内容 那是对的吗? 如果是这样,您可以: 使用Boost库来计算文件中当前数据的CRC 使用我最初描述的方法之一启动编辑器 坚持紧紧的循环和
sleep
,这样您就不会浪费资源,而最初计算的CRC与循环的每次迭代计算的CRC匹配 当然,您需要处理各种问题(这只是描述我可能使用的算法的一种非常简单的方法),例如: 如果用户不更改文件怎么办? 如果找不到该文件怎么办? 我敢肯定有很多不同的方法可以做到这一点,但这是我目前可以想到的最简单的方法(尽管仍然可以相当确定地进行更改)。 免责声明:我还没有实现这样的事情,所以我可能完全不合时宜了;)     
您是否正在Windows上寻找
ShellExecute()
ShellExecuteEx()
API?他们将启动为文件注册的任何程序(通常基于文件名扩展名)。     

要回复问题请先登录注册