http://www.examw.com/microsoft/xinde/162514/

解决方案 »

  1.   

    http://blog.sina.com.cn/s/blog_6532295a0100q8hk.html
      

  2.   

    这是一个开机启动的例子,可以参考这个来实现
    public static bool AutoRun(bool param)
        {
            string strName = Application.ExecutablePath;
            string strNewName = strName.Substring(strName.LastIndexOf("\\") + 1, strName.LastIndexOf(".") - strName.LastIndexOf("\\") - 1);
            //指定文件是否存在
            if (!System.IO.File.Exists(strName))
                return false;
            Microsoft.Win32.RegistryKey rkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
            if (rkey == null)
                rkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");        
            //修改注册表
            try
            {
                if (param == true)
                    rkey.SetValue(strNewName, strName);//设置开机启动
                else
                    rkey.DeleteValue(strNewName);//取消开机启动
                return true;
            }
            catch
            {
            }
            return false;
        }
      

  3.   

    文件关联需要设置如下注册表项 HKCR是HKEY_CLASSES_ROOT
      WriteRegStr HKCR ".pjt" "" "pjtfile"   
      WriteRegStr HKCR "pjtfile" "" "经济评价工程文件"  //文件描述
      WriteRegStr HKCR "pjtfile\DefaultIcon" "" "$INSTDIR\main.ico,0"  //图标
      WriteRegStr HKCR "pjtfile\shell\open\command" "" "$INSTDIR\${PRODUCT_EXE} %1"  //双击执行exe,并传入命令行参数
    写注册表完毕后,需要调用api函数,通知系统刷新显示
      SHChangeNotify
      

  4.   

    我的也是用DeleteSubKeyTree()方法来删除整个子项的
    但它却抛出了个异常:子项不存在,无法删除子项。
    但是他确实存在,
    为什么会这样
    但是我用regedit工具却能手动删除,
    导出了该项
    然后将它删除
    再手动导入该项
    这时我上面的这段代码却能实现(不再提示异常)这是为什么,系统对它加密了么,还是我权限没跟好(右键管理员运行生成的exe也不行)
      

  5.   


    没用啊, 这个
    好像是如果自己手动设定过打开方式后
    CurrentVersion\Explorer\FileExts\ 下的.MP3键值系统会优先考虑(难道不是这样的么?)
    所以我才想删除下该键,但是没成功(就像5楼所说的)
      

  6.   

    是这样的。Win8 USER项下的子项权限保护得很好的,一般都不允许应用程序操作,这得要经过用户自己的确认。不然谷歌浏览器就不会专门为Win8的系统设置一个程序关联类的工具,用户首次运行时都会弹出一个询问关联的对话框目的就是让用户来手动设置,原因就是这样。这是Win8的一个特点。