using Microsoft.Win32;
using System.Configuration;
using System.Data;
using System.Reflection;
using System.Windows;
namespace ProgramOpen
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
public App()
{
RegistSubKey();
}
private void RegistSubKey()
{
/// 是否通过关联打开的软件
//if (args.Length > 0)
//{
// string path = "";
// for (int i = 0; i < args.Length; i++)
// path += args[i] + " ";
// path = path.TrimEnd(' ');
// Console.WriteLine(path);
// Console.ReadKey();
// //Application.Run(new mainForm(path));
//}
//else
//{
string keyName;
string keyValue;
keyName = "WPCFile";
keyValue = "资源包文件";
RegistryKey isExCommand = null;
bool isCreateRegistry = true;
string exePath = AppDomain.CurrentDomain.BaseDirectory + "/ProgramOpen.exe";
try
{
/// 检查 文件关联是否创建
isExCommand = Registry.ClassesRoot.OpenSubKey(keyName);
if (isExCommand == null)
{
isCreateRegistry = true;
}
else
{
if (isExCommand.GetValue("Create").ToString() == exePath)
{
isCreateRegistry = false;
}
else
{
Registry.ClassesRoot.DeleteSubKeyTree(keyName);
isCreateRegistry = true;
}
}
}
catch (Exception)
{
isCreateRegistry = true;
}
/// 假如 文件关联 还没有创建,或是关联位置已被改变
//if (isCreateRegistry)
{
try
{
RegistryKey key, keyico;
key = Registry.ClassesRoot.CreateSubKey(keyName);
key.SetValue("Create", exePath);
keyico = key.CreateSubKey("DefaultIcon");
keyico.SetValue("", exePath + ",0");
key.SetValue("", keyValue);
key = key.CreateSubKey("Shell");
key = key.CreateSubKey("Open");
key = key.CreateSubKey("Command");
/// 关联的位置
key.SetValue("", exePath + @" %1/");
/// 关联的文件扩展名,
keyName = ".wpc";
keyValue = "WPCFile";
key = Registry.ClassesRoot.CreateSubKey(keyName);
key.SetValue("", keyValue);
}
catch (Exception)
{
}
}
//Application.Run(new mainForm(""));
//}
}
}
}
C# 双击文件 打开程序
于 2024-08-13 22:02:36 首次发布