比如,如果我想读取注册表,打开时以KEY_READ的权限打开
如果我想写数据,则打开以指定KEY_WRITE的权限。
如果我想删除注册表项,MSDN说打开时要指定DELETE的权限,但我在MSDN里没有找到与DELETE相关的权限。请问这里应该指定什么权限?(不要KEY_ALL_ACCESS,因为这个权限在VISTA下问题较多)

解决方案 »

  1.   

    删除还是要KEY_ALL_ACCESS的。Vista上你要删除也得要KEY_ALL_ACCESS的,
    如果你删除的注册表项是HKEY_LOCAL_MACHINE下的值,你的EXE就需要高权限启动。
      

  2.   

    你直接在MSDN里看删除注册表项的函数,里面有写需要什么权限其实删除就是写,KEY_WRITE应该可以
      

  3.   


    什么意思?什么叫高权限启动?在xp和vista上必须都得是KEY_ALL_ACCESS才能删除吗?
      

  4.   

    1)在Vista如果你开着UAC,那么通过Explorer启动程序都是普通权限的,除非你的程序填写了manifest需要高权限启动。
    2)删除应该需要KEY_ALL_ACCESS