Win32应用程序设置

时间:2012-10-10 12:42:38

标签: c++ winapi registry settings

如何存储以后可以加载到我的应用程序中的设置?

例如,我有一个编辑控件,用户可以更改其字体,字体颜色和背景颜色。当用户更改这些内容时,我想保存它们,以便当用户再次打开应用程序时,字体和颜色将与它们离开时一样。

我曾经考虑过写入Windows注册表,但是我不仅对如何在那里保存字体感到困惑,(或者即使你可以做这样的事情),但我也有一个可以运行的便携版本关闭闪存驱动器。有没有办法将这些设置保存到与可执行文件位于同一目录中的文件中?如果是这样,我将如何保存并加载这些?

如果没有办法使用设置文件来完成此操作,我怎么能使用Windows注册表来执行此操作?

3 个答案:

答案 0 :(得分:3)

最佳方式IMO将其存储在ini文件中,例如,一个文件:app.ini

[AppSettings]
fntBackground=255 255 0
fntFace=Tahome

[LoadDialog]
...

自己编写它很容易,你也可以在codeproject上找到准备好的类,我快速搜索了一下,发现了这个:

http://www.codeproject.com/Articles/5401/CIni

看起来很有希望

答案 1 :(得分:2)

如果允许您的应用程序写入该文件夹,则可以像许多Windows应用程序一样使用.ini文件。您可以使用GetPrivateProfile/WritePrivateProfile API读取和写入文件,例如GetPrivateProfileInt

如果您正在使用某个框架,它可能还会提供更友好的API版本(例如,MFC提供CWinApp::GetProfileInt和其他版本。)

答案 2 :(得分:2)

在Windows中读取配置信息的最简单方法是使用GetPrivateProfileString / WritePrivateProfileString函数,如Zdeslav Vojkovic所说。

但是你看到了这个:注意此功能仅用于与16位基于Windows的应用程序兼容。应用程序应将初始化信息存储在注册表中。现在已经过时,并且经常被禁止。建议(但通常只是简单的方式)要求您使用XML files。然后你可以使用你喜欢的任何方法 - DOM,SAX,XMLLite