轉自:http://blog.csdn.net/zhangtirui/article/details/4309492shell
最近公司在作一個項目 用到關於自定義格式的文件,但在註冊表圖標更改後 文件圖標的即時更新上遇到了問題 查了不少資料 都沒有很好的解決辦法 大概比較推崇的是關閉explorer 還有更鬱悶的就是註銷重啓電腦之類.ui
using System;this
using System.Collections.Generic;spa
using System.ComponentModel;.net
using System.Data;orm
using System.Drawing;blog
using System.Text;it
using System.Windows.Forms;io
using Microsoft.Win32;class
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();
}
}
}