使用c#实现dsoframer.ocx的注册方法

---恢复内容开始---

  最近帮公司开发一个类似于帮助文档的应用时用到了dsoframer.ocx控件,它是由微软提供一款开源的用于在线编辑的控件,其中包括注册,和使用方法网上已经有了许多的教程.可是当我按照各位前辈的教程开发完了自己的应用时我发现我写的东西竟然在别人的电脑上运行不了,why?因为使用者的PC上也要注册dsoframer.ocx才可以运行,而我的应用是专门供非开发人员使用的.要他们自己将控件放入系统盘制定位置,然后再使用命令行注册未免不太现实,关于也影响用户体验.这个网上也有大神给出解决方案.但因为我才疏学浅,多次尝试无果后,我只有自己思考解决方案了,下面给出我的解决方案:

  1.编写好注册用的bat,其中32位和64稍有差别,如下所示

//32位
copy dsoframer.ocx c:\windows\system32\dsoframer.ocx
regsvr32.exe c:\windows\system32\dsoframer.ocx
//64位
copy dsoframer.ocx c:\windows\SysWOW64\dsoframer.ocx
regsvr32.exe c:\windows\SysWOW64\dsoframer.ocx

  2.因为是相对路径所以要存放好dsoframer.ocx控件,两个文件夹放入和打包好的应用同一个文件夹中,如下图所示

  3.具体实现代码:

//这段判断代码放入构造方法中,因为如果在只有在构造方法里才没有开始加载控件,否则计算机加载完了from才发现没有这个控件,那就会直接报错
bool isRegisted = IsRegistered("00460182-9E5E-11D5-B7C8-B8269041DD57");//这是注册表里的序列,32和64是一样的
            if (!isRegisted)
            {
                RegisterDso();
            }

//判断控件是否已经注册
        private static bool IsRegistered(String CLSID)
        {
            if (String.IsNullOrEmpty(CLSID))
                return false;

            String key = String.Format(@"CLSID\{{{0}}}", CLSID);
            RegistryKey regKey = Registry.ClassesRoot.OpenSubKey(key);
            if (regKey != null)
                return true;
            else
                return false;
        } 

        /// <summary>
        /// 注册Dsoframer
        /// </summary>
        private void RegisterDso() {
            string targetDir = "";
            string reg = "";       //判断计算机操作系统具体位数32和64区别开
            if (Environment.Is64BitOperatingSystem)
            {
                targetDir = System.Windows.Forms.Application.StartupPath + "\\64注册\\";//string.Format();//路径
                reg = "reg64.bat";
            }
            else
            {
                targetDir = System.Windows.Forms.Application.StartupPath + "\\32注册\\";//string.Format();//路径
                reg = "reg32.bat";
            }
            Process proc = new Process();
            proc.StartInfo.WorkingDirectory = targetDir;
            proc.StartInfo.FileName =reg;
            proc.StartInfo.Arguments = string.Format("10");
            proc.StartInfo.CreateNoWindow = false;
            proc.StartInfo.Verb = "runas";//管理员运行
            proc.Start();
            proc.WaitForExit();
        }    

  以上就是我的方案具体实现,第一次写博客,若有不对还请各位不吝赐教.谢谢观看!

---恢复内容结束---

时间: 2024-10-11 00:13:46

使用c#实现dsoframer.ocx的注册方法的相关文章

dsoframer.ocx 注册

DSOFramer是微软提供的一款用于在线编辑.调用Word.Excel等Office程序的ActiveX组件,可以帮助解决第三方操作编辑word/excel等文件 注册DSOFramer 1.32位电脑,dsoframer.ocx放在C:\Windows\System32\      64位电脑,C:\Windows\sysWOW64\ 2.window键+R键调出运行 cmd,进入命令运行界面,注意看此时是否是已管理员的身份启用命令提示符,如下图: 3.如果你的是用户执行的情况,window

qt集成dsoframer.ocx打开office办公软件

最近一段时间真是事情太多了,前不久项目中一个嵌入office软件的问题,由于没有时间研究,且项目的需求是浏览word文档,偷了一个懒,把word文档转换成pdf文档,然后嵌入libcef浏览器给打开了 现在回过头来,重新研究了这方面的直接办法,在网上查了多方面的资料,终于决定要使用ocx这个方案来完成此项功能,可限于资源问题,ocx方面的资料 没怎么接触过,所以就盲目的在晚上看别人的东西,不过皇天不负有心人,最终还是让我成功的搞定了这个问题,然后觉着,这个ocx也不过如此么,总的来说说 还是比较

C# Dsoframer.ocx 如何在winform中嵌入Excel,内嵌Excel,word

如果你还不太清楚Dspframer.ocx怎么放到窗体上就看上一篇文章,里面详细介绍了是如何放到窗体上的. 链接:http://www.cnblogs.com/pingming/p/4182045.html 第一步 创建新窗体 创建一个新窗体,放置一个panel容器控件,我们就是要将dsoframer.ocx放到panel里面. 第二步 下面是所有调用的方法,有步骤的. public partial class ExcelForm : DevExpress.XtraEditors.XtraFor

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

public class DsoframerHelper { private static string dsoframerPath = System.Windows.Forms.Application.StartupPath + @"/Plugins/dsoframer.ocx"; /// <summary> /// 判断ocx控件是否注册的 /// </summary> /// <param name="clsid"><

Android Market google play store帐号注册方法流程 及发布应用注意事项【转载】

[转载]http://www.cnblogs.com/zdz8207/archive/2012/07/09/google-play-store-registered.html Android Market google play store帐号注册方法流程 及发布应用注意事项 Android Market google play store帐号申请 注册方法流程 在 Google Play 中发布软件之前,您需要完成以下三项工作: 创建开发人员个人资料 接受开发人员分发协议 通过信用卡支付注册费

PhpStorm (强大的PHP开发环境)2016.2.1 附注册方法

最新版PhpStorm 2016正式版改进了PHP 7支持,改进代码完成功能. PhpStorm 是最好的PHP开发工具,使用它进行PHP开发将会让你感觉到编程的乐趣. 快乐无极终于从oschina看到了注册方法: phpstorm已经升级到2016.2,原注册码失效,2016.2注册方法:注册时选择“License server”输入 http://idea.lanyus.com/ (已被封杀) 或者: http://idea.qinxi1992.cn/点击“OK”快速激活JetBrains系

PhpStorm (强大的PHP开发环境)2016.1.2 附注册方法

最新版PhpStorm 10正式版改进了PHP 7支持,改进代码完成功能. PhpStorm 是最好的PHP开发工具,使用它进行PHP开发将会让你感觉到编程的乐趣. 快乐无极终于从oschina看到了注册方法: phpstorm已经升级到10.0,原注册码失效,10.0注册方法:注册时选择"License server"输入 http://idea.lanyus.com/ (已被封杀) 或者: http://idea.qinxi1992.cn/点击"OK"快速激活J

CorelDraw x6【Cdr x6】官方简体中文破解版(64位)安装图文教程、破解注册方法

原文:http://www.3d66.com/softsetup_120.html 第一步:解压文件 (图一) 首先解压我们下载的CorelDraw x6 64位文件包 如图一. 2第二步:运行安装程序 (图二) 双击“Setup”开始安装CorelDraw x6 64位 如图二. 3第三步:CorelDraw x6 64位许可协议界面 (图三) 这里我们要先把协议文字拖到最下面才能点击“我接受” 如图三. 4第四步:CorelDraw x6 64位序列号选择界面 (图四) 勾选“我没有序列号,

dev 注册方法 z

工具栏注册方法: 1.将下面的内容保存为  bat文件,放到 Components\Tools\ 目录下,然后双击执行.注意,可能需要管理员权限. 忘了一点,components.xml 文件中的 PublicKeyToken 值没改, 在执行下一步操作时,请用记事本打开, 把里面的 b88d1754d700e49a  替换为 57788879a936c57d (这个值在包内的 DevExpress.Key 目录下可以找到 temp.txt内,你也可以用sn命令通过私钥导出,私钥也在那个目录下.