网页唤醒winform程序

 public static void GetRegistData()
    {
        string name = "huishuangzhu";
        //搜索到注册表根目录
        RegistryKey hkml = Registry.ClassesRoot;
        //搜索到注册表根目录下的XXX文件夹。
        RegistryKey software = hkml.OpenSubKey("huishuangzhu", true);
        //RegistryKey aimdir = software.OpenSubKey("calculate", true);
        //registData = software.GetValue(name).ToString();
        if (software==null)
        {
            //注册表还没注册。
            Enroll();
        }
        else
        {
            Console.WriteLine("你已经注册了");
            Console.ReadLine();
        }
        //return registData;
    }


    public static void Enroll()
    {
        //获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。
        string str = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
        try
        {
            Console.WriteLine("正在查找已经注册的程序.....");
            RegistryKey key = Registry.ClassesRoot;
            key.DeleteSubKeyTree(@"huishuangzhu");
            Console.WriteLine("已经清除注册程序.....");
        }
        catch (Exception e)
        {
            Console.WriteLine("未找到注册的程序...");
        }            /*===============================================*/
        Console.WriteLine("开始注册程序....");
        //后面引用的是唤醒的名字。
        RegistryKey regWrite = Registry.ClassesRoot.CreateSubKey("huishuangzhu");

        regWrite.SetValue("", @"URL:D:\XXX\XXX.exe");
        regWrite.SetValue("URL Protocol", "URL Protocol");//不行可以删来看看
        regWrite.Close();


        regWrite = Registry.ClassesRoot.CreateSubKey(@"huishuangzhu\shell");
        regWrite.Close();

        regWrite = Registry.ClassesRoot.CreateSubKey(@"huishuangzhu\shell\open");
        regWrite.Close();

        regWrite = Registry.ClassesRoot.OpenSubKey(@"huishuangzhu\shell\open", true);
        RegistryKey aimdir = regWrite.CreateSubKey("command");
        //获取程序运行地址。
        string BaseDirectory = AppDomain.CurrentDomain.BaseDirectory;
        string AppPath = Path.Combine(@"D:\XXX\", "XXX.exe");

        aimdir.SetValue(@"", "\"" + AppPath + "\" \" %1\"");

        regWrite.Close();
        aimdir.Close();
    }

因为注册表注册的时候是要管理员权限的,所以下面是获取管理员权限的一直办法。注册完之后,你就可以用唤醒的名字去浏览器输入XXX://,然后回车就出现一个要打开XXX程序的弹窗了。


 

 

 


 

posted @ 2022-11-28 17:04  雨淋湿了记忆  阅读(418)  评论(1编辑  收藏  举报