none
WriteProfileString、WritePrivateString与win7、vc2010 RRS feed

  • 问题

  • 在win7下测试上述两个函数,并没有找到写入的值,但也并没有报错,请教win7下只能使用winapp的成员函数将其写入注册表中吗?

    ::WriteProfileString("学习测试","admin","zhangsan");
     CString str;
     ::GetProfileString("学习测试","Admin","hushangqing",str.GetBuffer(100),100);
     str.ReleaseBuffer();
     AfxMessageBox(str);
    2012年10月27日 16:17

全部回复

  • 您操作的是Windows目录下的win.ini文件。如果想操作注册表可以使用Reg开头的函数。

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2012年10月28日 3:17
    版主
  • 嗯,是的,问题是我用那个函数写入win.ini不成功,是不是说这个函数在我当前的环境下无效呢?
    2012年10月28日 7:53
  • HKEY hkey;
     RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\http://www.sunxin.org\\admin",&hkey);
     RegSetValue(hkey,NULL,REG_SZ,"zhangsan",strlen("zhangsan"));
     RegCloseKey(hkey);

    后来发现象上面一样操作注册表,同样也没有错误,也没有得到想要的结果,是不是这些版本仅为了兼容十六位版本,在我当前的系统环境下无效?

    2012年10月29日 1:42
  • UAC,请用管理员权限运行你的程序。
    2012年10月29日 2:45
  • 用管理员身份运行程序?调试的时候怎么做呢?
    2012年10月29日 3:12
  • HKEY hKey;
     DWORD dwAge=30;
     RegCreateKey(HKEY_LOCAL_MACHINE,"Software\\http://www.sunxin.org\\admin",&hKey);
     RegSetValue(hKey,NULL,REG_SZ,"zhangsan",strlen("zhangsan"));
     RegSetValueEx(hKey,"age",0,REG_DWORD,(CONST BYTE*)&dwAge,4);
     RegCloseKey(hKey);

     HKEY hkey;
     DWORD dwDisposition;
     DWORD dwAge=30;
     RegCreateKeyEx(HKEY_LOCAL_MACHINE,"Software\\http://www.sunxin.org\\admin",0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS ,NULL,&hkey,&dwDisposition);
     RegSetValueEx(hkey,"zhangshan",0,REG_SZ,(CONST BYTE*)&dwAge,4);
     RegCloseKey(hkey);

    头晕了,就连上面这些操作也看不到任何想要的结果发生。

    UAC?究竟哪里出错了?究竟怎么做?


    2012年10月29日 3:58
  • 以管理员权限运行你的 VS。

    哪里都没有错。究竟怎么做,你得了解下如何编写兼容UAC的程序。

    2012年10月29日 5:16
  • 非常感谢您的回答!您能不能继续教我一下,下面该如何解决,因为我用管理员身份运行后,调试的结果仍然不是预期的,但如果我把操作的注册表键修改为HKEY_CURRENT_USER,得到的却是预期的结果



    2012年10月29日 5:27