转自: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();
}
}
}