C#关联文件类型到自己的程序

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using Microsoft.Win32;
namespace AppC
{
    static class Program
    {
        /// <summary> 
        /// 应用程序的主入口点。 
        /// </summary> 
        [STAThread]
        static void Main(string[] args) 
        { 
            Application.EnableVisualStyles(); 
            Application.SetCompatibleTextRenderingDefault(false); 

            /// 是否通过关联打开的软件 
            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; 

                try 
                { 
                    /// 检查 文件关联是否创建 
                    isExCommand = Registry.ClassesRoot.OpenSubKey(keyName); 
                    if (isExCommand == null) 
                    { 
                        isCreateRegistry = true; 
                    } 
                    else 
                    { 
                        if (isExCommand.GetValue("Create").ToString() == Application.ExecutablePath.ToString()) 
                        { 
                            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", Application.ExecutablePath.ToString()); 

                        keyico = key.CreateSubKey("DefaultIcon"); 
                        keyico.SetValue("", Application.ExecutablePath + ",0"); 

                        key.SetValue("", keyValue); 
                        key = key.CreateSubKey("Shell"); 
                        key = key.CreateSubKey("Open"); 
                        key = key.CreateSubKey("Command"); 

                        /// 关联的位置 
                        key.SetValue("", Application.ExecutablePath.ToString() + @" %1/");

                        /// 关联的文件扩展名,  
                        keyName = ".wpc"; 
                        keyValue = "WPCFile"; 
                        key = Registry.ClassesRoot.CreateSubKey(keyName); 
                        key.SetValue("", keyValue); 
                    } 
                    catch (Exception) 
                    { 
                    } 
                } 
                //Application.Run(new mainForm("")); 
            } 
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@David Liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值