CAD二次开发,安装程序中写注册表

这篇具有很好参考价值的文章主要介绍了CAD二次开发,安装程序中写注册表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、加载dll时写注册表

我们知道,dll加载到cad中后使用

HostApplicationServices.Current.RegistryProductRootKey()

就可以拿到当前cad的注册表,那么如果想在安装程序时写,此时并没有cad的环境,要怎么办呢?

二、获取所有已安装的cad的注册表路径

cad在安装后,会在注册表的计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\Hardcopy目录下存放所有已安装的cad的注册表位置

CAD二次开发,安装程序中写注册表

如图,由于我只安装了一个,所以这里只显示一个,我们使用代码即可获取到所有的valueName值

public static List<string> GetHardcopyList()
    {
        List<string> list = new List<string>();
        var key = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Autodesk\Hardcopy");
        if (key != null)
        {
            string[] subKeyNames = key.GetValueNames();
            subKeyNames.Count().Prompt();
            foreach (string name in subKeyNames)
            {
                list.Add(name);
            }
        }
        return list;
    }

 

拿到valueName值后,我们可以用如下方法写上注册表

public static void WriteZcb()
    {
        var names=GetHardcopyList();
        var dllFile = "D:\\123.dll";
        foreach (var name in names)
        {
            var address = "SOFTWARE\\" + name + "\\Applications";
            RegisteringCAD(address, dllFile);
        }
    }
    /// <summary>
    /// 注册dll
    /// </summary>
    /// <param name="dllFile">dll文件路径</param>
    /// <returns></returns>
    public static bool RegisteringCAD(string address,string dllFile)
    {
        RegistryKey user = Registry.CurrentUser.OpenSubKey(address, true);
        if (user == null)
        {
            return false;
        }
        RegistryKey keyUserApp = user.CreateSubKey(Path.GetFileNameWithoutExtension(dllFile));
        keyUserApp.SetValue("DESCRIPTION", Path.GetFileNameWithoutExtension(dllFile), RegistryValueKind.String);
        keyUserApp.SetValue("LOADCTRLS", 2, RegistryValueKind.DWord);
        keyUserApp.SetValue("LOADER", dllFile, RegistryValueKind.String);
        keyUserApp.SetValue("MANAGED", 1, RegistryValueKind.DWord);

        return true;
    }

 其中 dllFile为要写入的dll路径文章来源地址https://www.toymoban.com/news/detail-410679.html

到了这里,关于CAD二次开发,安装程序中写注册表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【WinForm】exe程序实现读取或写入注册表

    当遇到首次安装,需要在宿主机器做一下记录时,就需要通过读取和写入注册表来实现读写记录,下面讲一下 新建一个类 UseRegistry.cs ,定义两个常量值,一个程序名 APP_NAME 自己命名,另一个是注册表 REG_NAME 的路径要填正确,代码如下 写入注册表值,代码如下 读取注册表值

    2024年02月14日
    浏览(36)
  • 通过注册表查看电脑是否安装Microsoft Visual C++

    1.参考文章: 查看是否安装了VC++ 2015-2019 Redistributeable 如何使用NSIS检查是否已安装Visual C ++ 2017可再发行的x86 2.NSIS判断操作系统是x64位还是x86(32位)系统 NSIS判断操作系统位数 NSIS判断操作系统版本代码 2.实际测试 2.1:HKEY_LOCAL_MACHINESOFTWAREMicrosoftVisualStudio14.0VCRuntimes 左边

    2024年02月15日
    浏览(42)
  • 通过注册表查看安装了哪些版本的.net Framework

    win键加r调出运行窗口,录入regedit回车打开注册表编辑器 其中HKLM为HKEY_LOCAL_MACHINE: 1.0 HKLMSoftwareMicrosoft.NETFrameworkPolicyv1.03705 Install REG_SZ 等于1 1.1 HKLMSoftwareMicrosoftNET Framework SetupNDPv1.1.4322 Install REG_DWORD 等于1 2.0 HKLMSoftwareMicrosoftNET Framework SetupNDPv2.0.50727 Install REG_DWORD 等

    2024年02月05日
    浏览(42)
  • Office安装时闪退,用Windows Installer Cleanup彻底卸载 或 注册表清理解决

    结论:如果遇到安装Office 时闪退或莫名其妙无法安装,是因为Office

    2024年02月04日
    浏览(67)
  • 群晖NAS:docker查询注册表失败解决方案 docker安装网心云、mysql等

    差不多2023年4月底开始的,docker内不能直接搜索注册表。据说是有人在库里放了一些有意思的东西,被和谐掉了,所以也别指望什么时候能解封。 网上很多案例,都不能用。还有奇葩的给软路由翻墙的,不需要。直接命令行安装就行 步骤: 配置SSH(已配置的忽略) 链接ssh,

    2024年02月15日
    浏览(40)
  • 06-5_Qt 5.9 C++开发指南_Splash 与登录窗口(MouseEvent鼠标事件;注册表;加密)

    一般的大型应用程序在启动时会显示一个启动画面,即 Splash 窗口。Splash 窗口是一个无边对话框,一般显示一个图片,展示软件的信息。Splash 窗口显示时,程序在后台做一些比较耗时的启动准备工作,Splash 窗口显示一段时间后自动关闭,然后软件的主窗口显示出来。Qt有一个

    2024年02月13日
    浏览(45)
  • 【注册表】windows系统注册表常用修改方案

    打开电脑,按开始键,点击运行输入 regedit 按回车键进入注册表界面,找到如下路径: 打开电脑,按开始键,点击运行输入 regedit 按回车键进入注册表界面,找到如下路径:HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/ScreenServer.切换到Bubbles子键上单击鼠标右键执行:新建(

    2024年02月14日
    浏览(46)
  • 请设置注册表项HKLMSoftwareMicrosoft.NETFrameworkInstallRoot,指向.NET Framework安装位置(写给我自己备份的免得以后找不到)

    今天上午遇到这个问题, 百度了很多文章, 都一一试了, 还是不行, 除了手工修改注册表外,甚至把.netframework全删了再重启安装一次,还是不行,最后找到一个文章提供解决方法,原来是要在注册表改2个地方, 但前面看的文章都只说了一处,怪不得一直不行,现在写出来方案: 环境wi

    2024年02月05日
    浏览(106)
  • Windows与网络基础:注册表基础和注册表维护与优化

    学习目标 1.理解注册表概念 2.掌握注册表维护及优化方法 注册表是Windows操作系统、硬件设备以及客户应用程序得以正常运行和保存设置的核心“数据库”,也可以说是一个非常巨大的树状分层结构的数据库系统 注册表记录了用户安装在计算机上的软件和每个程序的相互关联

    2023年04月14日
    浏览(41)
  • 如何才能监控查看出注册表更改情况,本地组策略设置更改了哪些注册表对应值?

    Win11 专业版 HP480G7 Windows Sysinternals Suite 如何才能监控查看出注册表更改情况,本地组策略设置更改了哪些注册表对应值? 1.下载Windows Sysinternals Suite,解压找到ProcessMonitor 打开 2.先按ctrl+e capture 进行捕获监控 3.按ctrl+L 筛选一下,利用filter过滤器还可以筛选自己所要查看的对应

    2024年02月06日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包