zoukankan      html  css  js  c++  java
  • C#:注册组件 (cmd)

        public class ComRegistor
        {
            public static string classID = "CLSID\{479A1AAC-C148-40BB-9868-A9773DA66AF9}\";//SWFToImage组件注册ID
    
            /// <summary>
            /// 注册组件
            /// </summary>
            /// <param name="fileFullName">文件完整路径</param>
            /// <param name="dllName">动态库名</param>
            public static bool Register(string fileFullName, string dllName)
            {
                bool rev = false;
                try
                {
                    Process p = new Process();
                    p.StartInfo.FileName = "cmd.exe";
                    p.StartInfo.UseShellExecute = false;
                    p.StartInfo.RedirectStandardInput = true;
                    p.StartInfo.RedirectStandardOutput = true;
                    p.StartInfo.RedirectStandardError = true;
                    p.StartInfo.CreateNoWindow = false;
                    p.Start();
                    p.StandardInput.WriteLine(@"DELETE " + fileFullName + @" %windir%system32");
                    p.StandardInput.WriteLine(@"COPY " + fileFullName + @" %windir%system32");
                    p.StandardInput.WriteLine(@"regsvr32 /s %windir%system32" + dllName);
                    p.StandardInput.WriteLine("exit");
                    string ReturnInfo = p.StandardOutput.ReadToEnd();
                    p.Close();
                    rev = true;
                }
                catch (Exception e)
                {
                    rev = false;
                }
    
                return rev;
            }
            /// <summary>
            /// 判别某一组件是否已注册
            /// </summary>
            /// <returns></returns>
            public static bool IsRegister(string classID)
            {
                bool result = false;
                RegistryKey rkTest = Registry.ClassesRoot.OpenSubKey(classID);
                if (rkTest != null)
                {
                    result = true;
                }
                return result;
            }
    
            /*
             
                    if (!ComRegistor.IsRegister(ComRegistor.classID))
                    {
                        if (File.Exists(System.Environment.SystemDirectory + Path.DirectorySeparatorChar + "SWFToImage.DLL") == true)
                        {
                            File.Delete(System.Environment.SystemDirectory + Path.DirectorySeparatorChar + "SWFToImage.DLL");
                        }
    
                        
                        ComRegistor.Register(Application.StartupPath + @"RegSvrSWFToImage.Dll", "SWFToImage.Dll");
    
                        if (!ComRegistor.IsRegister(ComRegistor.classID))
                            MessageBox.Show("COM组件注册失败");
                    }
             */
        }
  • 相关阅读:
    asp.net过滤数据中有异常数据字符串
    微信内置浏览器的 User Agent的判断
    最近突然想了很久还是开博每天写点什么
    Sonar-scanner 插件配置应用
    存clob的值
    动态代理
    在oracle函数中不可直接将变量作为sql语句中的参数
    按照行、列进行统计(按两个维度进行统计)
    查询关联不上的数据,三张表查询
    前台页面——js/jq循环
  • 原文地址:https://www.cnblogs.com/shenchao/p/6506277.html
Copyright © 2011-2022 走看看