C# 自定义文件格式并即时刷新注册表 非关闭explorer

 

转自:http://blog.csdn.net/zhangtirui/article/details/4309492

最近公司在做一个项目  用到关于自定义格式的文件,但在注册表图标更改后  文件图标的即时更新上遇到了问题  查了很多资料 都没有很好的解决办法 大概比较推崇的是关闭explorer 还有更郁闷的就是注销重启电脑之类.

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using Microsoft.Win32;

using System.Runtime.InteropServices;

namespace Reg

{

    public partial class Form1 : Form

    {

        [DllImport("shell32.dll")]

        public static extern void SHChangeNotify(uint wEventId, uint uFlags, IntPtr dwItem1, IntPtr dwItem2);

        public Form1()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            Registry.SetValue("HKEY_CLASSES_ROOT//.Test", "", "TestFILE");//此为加入的文件类型 

            Registry.SetValue("HKEY_CLASSES_ROOT//TestFILE", "", "Test类型文件");//关联方式 

            Registry.SetValue("HKEY_CLASSES_ROOT//TestFILE//DefaultIcon", "", @"D:/Truck1.ico"); //图标

            Registry.SetValue("HKEY_CLASSES_ROOT//TestFILE//shell//open//command", "", @"D:/OpenFile.exe %1");//执行文件

            SHChangeNotify(0x8000000, 0, IntPtr.Zero, IntPtr.Zero);

            this.Close();

        }

    }

}

posted @ 2014-08-12 00:11  yellowgiutou  阅读(599)  评论(0编辑  收藏  举报