代码之家  ›  专栏  ›  技术社区  ›  iksemyonov

WinAPI应用程序设置

  •  0
  • iksemyonov  · 技术社区  · 14 年前

    if(!ReadKey(some_setting))
        WriteKey(some_setting, some_setting_setting_default_value)
    

    初始化“设置”对话框时。然后我将小部件状态设置为从注册表读取的相应值。问题是,如果应用程序是第一次运行,则无法按照上述代码模式读取默认设置。再一个 ReadKey() 需要将刚刚写入的默认设置读入程序中的settings变量。我觉得这有点笨拙。所以问题基本上是:

    • 在Win32中使用设置有什么标准方法吗?
    • 而且,最重要的是,在安装过程中有没有办法设置默认的应用程序设置,以便有代码来设置默认设置(我想这是首选方法,因为这样您就可以修改默认的应用程序设置,而无需重新构建它)

    为什么这是家庭作业?这是一个关于做事是否有既定惯例的问题,而不是一个要求为我做我的工作的问题。现在我最好去掉“大学项目”这个词。

    1 回复  |  直到 14 年前
        1
  •  1
  •   ChrisW    14 年前

    您可以避免将硬编码的默认值写入注册表,并将注册表保留为空,除非它包含非默认值:

    string ReadRegistry(
      const string& some_setting,
      const string& some_setting_default_value
      )
    {
      //try to read user-specified setting from registry
      string rc;
      if (ReadKey(some_setting, rc))
      {
        return rc;
      }
      //else return hard-coded default value, not from registry
      return some_setting_default_value;
    }
    

    或者,您可以在安装程序时(在运行程序之前和尝试读取注册表之前)将所有默认值写入注册表。

    不。

    在安装过程中有没有办法设置默认的应用程序设置

    是的,安装程序可以写入注册表。