リメイク版の記事ができましたのでこちらの記事を見てください。
C#で拡張子を登録する方法を見つけました。
C#のMicrosoft.Win32.RegistryKeyクラスを使用します。
using Microsoft.Win32;
using System;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace Sample
{
public class Extension
{
public Extension()
{
// 登録する拡張子。
// (※お好みで指定してください。)
string extension = ".test";
// 実行するコマンドライン。
string commandline = "\"" + Application.ExecutablePath + "\" \"%1\"";
string fileType = Application.ProductName;
// 説明。
// (※お好みで指定してください。)
string description = "test ファイル";
// 動詞。
// (※お好みで指定してください。)
string verb = "open";
string verbDescription = "開く(&O)";
// アイコンの指定。
string iconPath = Application.ExecutablePath;
int iconIndex = 0;
// ※以下のコードは書き変えないで使ってください。
RegistryKey rootkey = Registry.ClassesRoot;
RegistryKey regkey = rootkey.CreateSubKey(extension);
regkey.SetValue("", fileType);
regkey.Close();
RegistryKey typekey = rootkey.CreateSubKey(fileType);
typekey.SetValue("", description);
typekey.Close();
RegistryKey verblkey = rootkey.CreateSubKey(fileType + "\\shell\\" + verb);
verblkey.SetValue("", verbDescription);
verblkey.Close();
RegistryKey cmdkey = rootkey.CreateSubKey(fileType + "\\shell\\" + verb + "\\command");
cmdkey.SetValue("", commandline);
cmdkey.Close();
RegistryKey iconkey = rootkey.CreateSubKey(fileType + "\\DefaultIcon");
iconkey.SetValue("", iconPath + "," + iconIndex.ToString());
iconkey.Close();
}
}
}