public class DsoframerHelper{private static string dsoframerPath = System.Windows.Forms.Application.StartupPath + @"/Plugins/dsoframer.ocx";private static string sys32Path = @"c:\windows\System32\dsoframer.ocx";//32位系统存放dsoframer.ocx的目录private static string sys64Path = @"c:\windows\SysWOW64\dsoframer.ocx";//64位系统存放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;elsereturn 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(){if (!File.Exists(dsoframerPath))return;//将dsoframer.ocx拷贝到系统目录string sysPath = "";if (Environment.Is64BitOperatingSystem)sysPath = sys64Path;elsesysPath = sys32Path;if (!File.Exists(sysPath))File.Copy(dsoframerPath, sysPath);Cmd("regsvr32.exe", sysPath);}/// <summary>/// 解注册dsoframer/// </summary>public static void UnRegisteredDsoframer(){Cmd("regsvr32.exe", $@" -u {dsoframerPath}");}}

  

(1)准备工作: 

在解决方案下创建Plugins目录,然后将dsoframer.ocx复制到Plugins目录下

(2)使用:

                if (!DsoframerHelper.IsRegisteredDsoframer())DsoframerHelper.RegisteredDsoframer();

  

检查ocx控件是否注册需要用到clsid,一下是查找方法

查看ocx控件CLSID的方法(转载)

dsoframer.ocx(32位)下载地址:https://pan.baidu.com/s/16Jd60vgU09KYxzOlZsti-A    提取码:7xgh   内涵函数使用方法

转载于:https://www.cnblogs.com/yaosj/p/10877384.html

dsoframer控件注册,解注册和检查注册情况相关推荐

  1. 二级VB培训笔记06:窗体与常用控件综合案例【个人信息注册】

    二级VB培训笔记06:窗体与常用控件综合案例[个人信息注册] 一.常用控件属性与方法思维导图 二.综合案例--个人信息注册 1.创建工程,修改名称为"个人信息注册",窗体名称设置为 ...

  2. dsoframer控件学习小结(打开WORD,EXCEL等文件)

    根据自己对dsoframer控件的学习,想把dsoframer控件进行简单的包装为C#的usercontrol,大体需要作如下:(创建windows的usercontrol的步骤就不再说了...) 我 ...

  3. 【转】ASP.NET验证控件详解(非空验证,比较验证,范围验证,正则表达式,自定义验证)...

    [转]ASP.NET验证控件详解(非空验证,比较验证,范围验证,正则表达式,自定义验证) ASP.NET验证控件详解 现在ASP.NET,你不但可以轻松的实现对用户输入的验证,而且,还可以选择验证在服 ...

  4. 常用数据绑定控件详解

    常用数据绑定控件详解 GridView内容详解(1) GridView内容详解(2) DataList内容详解 ListView详解(一) ListView详解(二) 导航控件的高级应用 from:h ...

  5. android自定义组件属性,Android组合控件详解 自定义属性

    组合控件详解 & 自定义属性 组合控件是自定义控件的一种,只不过它是由其他几个原生控件组合而成,故名组合控件. 在实际项目中,GUI 会遇到一些可以提取出来做成自定义控件情况. 一个自定义控件 ...

  6. Switch控件详解

    Switch控件详解 原生效果 5.x 4.x 布局 <Switch android:id="@+id/setting_switch"android:layout_width ...

  7. pythongui日历控件_“五一”快到了,用Python中PyQt5做一个日历,QCalendar控件详解...

    前面内容,我们详细了解了PyQt5中的一些常用控件 精彩内容回顾 Python用PyQt5设计界面,如何正确显示一幅图片,QPixmap控件详解 拥有漂亮的笔刷才能绘制多彩界面,PythonPyQt5 ...

  8. WindowsMediaPlayer 11 控件详解

    WindowsMediaPlayer 11 控件详解 转载别人的VB内容 C#中大多也通用 都是Microsoft的作品 . 属性/方法名: 说明: [基本属性] URL:String; 指定媒体位置 ...

  9. android什么控件能够输入多行文字,Android开发:文本控件详解——EditText(一)基本属性...

    一.简单实例: EditText输入的文字样式部分的属性,基本都是和TextView中的属性一样. 除此之外,EditText还有自己独有的属性. 二.基本属性: hint 输入框显示的提示文本 te ...

  10. Spinner控件详解

    Spinner控件详解 效果图 修改Spinner样式 在介绍之前,先看一下系统原生的样式 6.x & 5.x系统样式 4.x系统样式 官方文档 XML属性 方法 描述 android:dro ...

最新文章

  1. 搭建一个互联网公司后台服务架构及运维架构需要的技术
  2. 函数的重载、覆盖和隐藏
  3. 美图回应meitu商标纠纷:不影响主营业务 社交业务商标完备
  4. C++之指针探究(十):this指针
  5. 路飞学城—Python—爬虫实战密训班 第三章
  6. python open函数用法_python中open函数的用法详解
  7. 计算机课网络连不了,上网课电脑没有摄像头怎么办
  8. Django搭建网站的个人笔记记录
  9. 猫和老鼠服务器维护多久结束,猫和老鼠手游:长时间不玩游戏,再次进入游戏后会发生这些事...
  10. 实内积空间和欧式空间的定义
  11. VS2015中“项目无法加载,因为它缺少安装组件”的解决方法
  12. HTML5原生WebGL开发系列教程
  13. 模拟抽奖过程的C语言程序设计,C++抽奖程序实现方法
  14. IT 猎头分享---找工作前你真得想清楚离职原因了吗?
  15. 海信a5,掌阅f1手机水墨屏护眼日常使用经验
  16. 可视化界面:Activity 详解
  17. php学习基础篇之基础函数(数学 日期 字符串)、php循环流程控制
  18. Yolov5模型使用教程
  19. SecureCRT标签永久显示IP地址
  20. 第9章 梦的初现——开发回合制游戏《勇者斗恶龙》

热门文章

  1. OVS DPDK vhost-user详解(十三)
  2. CTF web题总结--任意文件下载
  3. python使用xlrd读取xlsx文件_005:【Python读取本地Excel文件】使用xlrd模块来读取本地Excel文件...
  4. 7.06 生成累计和
  5. Go 1.9 新特性
  6. Android 面试题(转)
  7. Resource interpreted as Stylesheet but transferred with MIME type application/x-css
  8. Windows下查看dll被哪个进程调用
  9. Linux命令之 —— grep \ls \ ll \ sed \ bg fg \ ipset \ wc \ ifconfig \ awk
  10. RocketMQ介绍与云服务器安装