码迷,mamicode.com
首页 > 其他好文 > 详细

dsoframer控件注册,解注册和检查注册情况

时间:2019-05-16 19:15:04      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:启动   系统   private   下载地址   dso   lin   tar   microsoft   exe   

 public class DsoframerHelper
    {
        private static string dsoframerPath = System.Windows.Forms.Application.StartupPath + @"/Plugins/dsoframer.ocx";

        /// <summary>
        /// 判断ocx控件是否注册的
        /// </summary>
        /// <param name="clsid"></param>
        /// <returns></returns>
        private static bool IsRegistered(string clsid)
        {
            String key = String.Format(@"CLSID\{{{0}}}", clsid);
            Microsoft.Win32.RegistryKey Regkey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(key);
            if (Regkey != null)
                return true;
            else
                return false;
        }

        /// <summary>
        /// 执行cmd.exe
        /// </summary>
        /// <param name="cmdExe"></param>
        /// <param name="cmdPara"></param>
        private static void Cmd(string cmdExe, string cmdPara)
        {
            using (System.Diagnostics.Process myPro = new System.Diagnostics.Process())
            {
                myPro.StartInfo.FileName = "cmd.exe";
                myPro.StartInfo.UseShellExecute = false; //是否使用操作系统shell启动
                myPro.StartInfo.RedirectStandardInput = true;//接受来自调用程序的输入信息    
                myPro.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息
                myPro.StartInfo.RedirectStandardError = true;//重定向标准错误输出
                myPro.StartInfo.CreateNoWindow = true;//不显示程序窗口
                myPro.Start();
                string strCmd = $@"{cmdExe} {cmdPara} &exit"; //这里使用 & 是批处理命令的符号,表示前面一个命令不管是否执行成功都执行后面(exit)命令
                myPro.StandardInput.WriteLine(strCmd);
                myPro.StandardInput.AutoFlush = true;
                myPro.WaitForExit();//等待程序执行完退出进程
            }
        }

        /// <summary>
        /// 判断dsoframer是否注册
        /// </summary>
        /// <returns></returns>
        public static bool IsRegisteredDsoframer()
        {
            return IsRegistered("00460182-9E5E-11d5-B7C8-B8269041DD57");
        }

        /// <summary>
        /// 注册dsoframer
        /// </summary>
        public static void RegisteredDsoframer()
        {
            Cmd("regsvr32.exe", dsoframerPath);
        }

        /// <summary>
        /// 解注册dsoframer
        /// </summary>
        public static void UnRegisteredDsoframer()
        {
            Cmd("regsvr32.exe", $@" -u {dsoframerPath}");
        }

dsoframer.ocx(32位)下载地址:https://pan.baidu.com/s/16Jd60vgU09KYxzOlZsti-A    提取码:7xgh

dsoframer控件注册,解注册和检查注册情况

标签:启动   系统   private   下载地址   dso   lin   tar   microsoft   exe   

原文地址:https://www.cnblogs.com/yaosj/p/10877384.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!