防止WritePrivateProfileString进入注册表

时间:2011-12-12 17:08:47

标签: windows winapi ini

有没有办法禁止WritePrivateProfileString写入注册表,而是使用我们提供给它的ini文件?我从MSDN上看到你可以禁用文件写入并专门使用Registry,但反之亦然。我希望保持程序的可移植性,同时使用标准的win apis存储配置数据(而不是创建新的东西)..

由于

3 个答案:

答案 0 :(得分:2)

如果您的ini文件已映射到注册表,那么您显然已将其添加到 HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ IniFileMapping。删除该条目,您的ini文件将最终到达您期望的位置。您的代码行在我的计算机上按预期工作。

MSDN Link

答案 1 :(得分:1)

我假设您正在使用MFC,因为只有它有自己的WritePrivateProfileString版本和类似的功能。当您使用较新版本的MFC编译代码时,您将自动使用这些API的MFC等效项,而MFC只是使用您传递给'API的信息并从注册表中写入/读取它们。 为避免这种情况,请不要写

  

WritePrivateProfileString

你的代码中的

但是

  

:: WritePrivateProfileString

代替。

答案 2 :(得分:0)

是。挂钩(您可以使用Microsoft Detours等库轻松完成。)