C#写的COM组件注册与反注册类

大漠插件免注册方式实战:从COM原理到C#/Python自动注册 在Windows桌面自动化开发中,COM组件注册是绕不开的基石。以regsvr32注册为例,其本质是调用DLL中的DllRegisterServer函数,将组件信息写入注册表。理解这一原理后,开发者便可以通过代码模拟加载、导出函数调用,实现免手动注册,让工具在交付时达到“双击即用”的效果。而大漠插件作为常见的COM组件,其免注册调用恰好契合这一思路,无论是采用C#动态调用DllRegisterServer,还是借助Python的ctypes与pywin32,都能在无需用户干预的情况下完成注册、创建对象并绑定 阅读详情

指定注册或反注册的位置(位于注册表中):

public class ClassCommand
{
	[ComRegisterFunction()]
	public static void RegistryCommand(string regKey)
	{
		Microsoft.Win32.Registry.ClassesRoot.CreateSubKey(regKey.Substring(18) + "\\Implemented Categories\\" + "{E5BDE9F2-167C-49BD-B05C-BCDF47B297FF}");
	}

	[ComUnregisterFunction()]
	public static void UnregisterCommand(string regKey)
	{
		Microsoft.Win32.Registry.ClassesRoot.DeleteSubKey(regKey.Substring(18) + "\\Implemented Categories\\" + "{E5BDE9F2-167C-49BD-B05C-BCDF47B297FF}");
	}
}

使用方法示例:

[ClassInterface(ClassInterfaceType.None)]
[Guid("9DD159BA-78C1-4FA1-8FE0-B1FBB6EB41F6")]
public class CTestXXZX : ClassCommand
{
	
}

 

C#编写自定义Excel公式计算非均匀现金流的NPV与IRR 1、用Visual Studio新建一个类库,命名为 阅读详情

相关推荐

大漠插件免注册全攻略:4种COM组件注册方式详解

在Windows桌面自动化与办公自动化项目中,大漠插件作为常用的COM组件,其注册环节常因权限、位数或环境问题而失败。理解COM组件的注册本质,即通过注册表写入CLSID、ProgID等身份信息,是掌握免注册技术的基础。常见的注册方式包括标准的regsvr32命令、注册表导出导入、RegFree COM清单机制,以及程序内直接调用DllRegisterServer。不同方式适配开发测试、批量部署、绿色版封装等多样化场景,按需选择可显著降低环境依赖,提升交付效率。本文从COM组件注册原理出发,对比多种注册方案

weixin_33875564的博客 393

ComRegisterFunctionAttribute

ComRegisterFunctionAttribute 使你能够添加任意注册代码以满足 COM 客户端的要求。 例如,你可以使用命名空间中的注册函数更新注册表 Microsoft.Win32 。 如果提供了注册方法,还应将应用 System.Runtime.InteropServices.ComUnregisterFunctionAttribute 于注销方法,这会反转注册方法中完成的操作。 .NET Framework: 公共语言运行时使用此属性调用方法,方法是将其包含的程序集注册 (直接或间接) 使用

725

C#中使用自定义COM组件的完整指南

在COM组件设计中,定义和使用自定义接口是常见的实践。为了创建一个自定义接口,开发者需要按照COM的规范进行定义。这通常涉及IUnknown接口的三个核心方法:AddRef、Release和QueryInterface。QueryInterface用于查询对象是否支持特定的接口。一旦定义了接口,它就可以被不同的COM组件实现。以下是定义一个简单COM接口的代码示例:在上面的代码中,Guid属性确保接口的唯一性,属性指明了接口是基于IUnknown的。MyMethod。

weixin_33245447的博客 1340

Regasm组件注册工具使用方法

Regasm.exe所在路径没有被系统添加PATH路径中,因此,需要DOS窗口切换到其把在路径后运行。

海纳百川,有容乃大。 4万+

RegAsm注册工具

执行前提:已安装.Net FrameWork类库 regasm assemblyFile [options] 读取程序集中的元数据,并将所需的项添加到注册表中。注册表允许 COM 客户程序以透明方式创建 .NET Framework 类。类一经注册,任何 COM 客户程序都可以使用它,就好像该类是一个 COM 类。

等时替代模型( Isotemporal Substitution Model)

文献阅读:Associations of sedentary time and physical activity with adverse health conditions: Outcome-wide analyses using isotemporal substitution model(该论文于2022年4月28日发表在柳叶刀子刊 EClinicalMedicine 上)

姚巨龙的博客 1万+

c#操作注册表中RegistryKey类

注册表项是注册表中的基本组织单位,好比是Windows 资源管理器中的文件 夹。 每个具体的注册表项都可以有子项,就像文件夹下可以有子文件夹一样。只要用户具有相应的权限,且注册表项不是基项或基项的下一级项,就可以删除该注册表 项。每个注册表项也可带有与其相关联的多个值(一个值就好比是一个文件),它们用于存储信息,例如,有关计算机上安装的应用程序的信息。每个值存储特定的 ...

1453

a股level2数据接口的最优委托信息

Level-1提供的数据并不可以知道委托了xxx手是有多少人下的,以及每个人下了多少的明细。通过Level-2的这个详细买卖盘数据,盘口上的单子到底是散户小打小闹,还是主力真刀实枪在干,都一览无余。交易类型:1-市价,2-限价,3-本方优先,10-撤单, 11-暂不清楚( 基金/ 债券有此值)除了提供逐笔成交记录这个信息外,还提供了最优委托信息,也就是盘口中前50笔订单的委托数量明细。那么Level-2盘口委托数据的速度更新是非常快的,大家可以通过。交易方向:0-未知,1-买入,2-卖出。

Qq_2037696191的博客 1168

com组件的注册and反注册

http://baike.baidu.com/link?url=aWzTWiCyX5XGZsVXFi-ndXKiuKa90kc_C47SQbDurXXaCZPINWqlRKqvZvmplLjy regsvr32 regsvr32 /u

pkucbj的专栏 1032

手把手教你搞定Pattern Recognition期刊的LaTeX投稿(附完整模板下载与避坑指南)

本文详细指导如何在Pattern Recognition期刊上使用LaTeX进行投稿,包括模板下载、环境配置、核心排版规范及投稿材料准备。特别强调期刊对格式的严格要求,如数学符号、图像引用等细节,并提供实用技巧和避坑指南,帮助作者高效完成投稿流程。

weixin_30876945的博客 395

在Qt中使用EtherCAT-SOEM的初始化中,状态机卡在PreOp->Save-Op过程中,出现State=0x12, Error=0x001e错误的解决办法

1.在调试EtherCAT软件过程中,一直出现配置从站进不了Save_op状态,通过下函数检查从站状态: //使用的从站编号为1 只有1个从站 ec_slave[1].state = EC_STATE_SAFE_OP; ec_writestate(1); //设置到安全模式 ec_statecheck(1, EC_STATE_SAFE_OP, EC_TIMEOUTSTATE * 4); printf("Slave %d State=0x%2.2x StatusCode=0x%4

zeal_for_rov的博客 6828

C# Com组件注册Regsvr32

Regsvr32命令用于注册COM组件,是Windows系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行。 命令格式:regsvr32 [/u] [/s] [/n] [/i[:cmdline]] dllname 其中dllname为activex控件文件名,建议在安装前拷贝到system文件夹下。 参数: /u 反注册控件 /s 指定 regsvr32 安静运行,在成功注册/反注册DLL文件的前提下不显示结果提示框。 /n 指定不调用 DllRegisterServer。此选...

liang08114的专栏 2991

人脸关键点定义汇总

前几天看一份代码临时需要找49个人脸关键点位置定义的图片发现怎么百度都搜不到,最后幸好谷歌可以使用了就用谷歌搜到了。所以在这里汇总一下我所知道的人脸关键点的定义和相关的一点东西,以备不时之需。 68个关键点 最常用的工具是Dlib,网址:http://dlib.net/ dlib的68个特征点检测算法是ERT算法【1】 使用dlib检测68个特征点的python示例见:http://dlib.n...

程序媛 7642

C#写的COM组件注册问题兼论微软Regasm注册的BUG

      工作中自己用C#写了专门读写EXCEL(不需要OFFICE环境,直接读原始文件,速度快)的COM组件,在使用过程中,发现原先的注册程序是有问题的。网上也有同样的网友碰到这个问题,但都没找到合适的解决办法。现在我把问题和解决方法都写出来,供读者参考。      其实问题都是出在COM组件的注册上,根本的原因就是REGASM /u 命令有些时候是无效的! 我这边提供的注册过程是先卸载,然后注册。原先的注册过程是: (1) regasm /u XLSRW.dll   (2) regasm XLSRW.

ddddfw888的专栏 6066

局部,全局(外部),static等变量详解

首先,必须明白一个程序是包含若干个源文件,每个源文件又是包含若干个函数,每个源文件、函数中又定义了若干个变量。但是每个变量都有自己的作用范围,也就是自己的作用域。只有在作用域内才可以访问变量。 变量的有效范围称为变量的作用域( scope)。归纳起来,变量有4种不同的作用域:文件作用域( file scope)、函数作用域( function scope)、块作用域(block sc...

归根结底不优秀的博客 1324

【Camera2教程一】Camera2的框架Pipeline和framework中核心类和接口的详细介绍

Camera2 的 API 模型被设计成一个 Pipeline(管道),它按顺序处理每一帧的请求并返回请求结果给客户端。

jiangchaobing_2017的博客 792

C#.NET com组件的编写

C#.NET com组件的编写 设置工程属性:“生成”-> “为COM Interop注册”。 1 更改AssemblyInfo.cs……设置COM可见 1 建立源码 1 注册COM组件DLL 3 使用HTML中VBS脚本测试 3 提示不能创建 ACTIVEX 控件…… 4 提示找不到路径 4 ----作者Attilax , 1466519819@qq.com---

attilax的专栏 6512

上位机图像处理和嵌入式模块部署(开篇)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 图像处理是现实生活当中很实用的一门技术。工业上一般采用的是机器视觉,以传统算法和光源控制为主,部分采用了深度学习技术。而生活当中,则主要以二维码识别、人脸识别、车牌识别和ocr识别为主,这中间深度学习与AI扮演了很重要的角色。过去,市场上的商业收费软件,主要还是以传统设备厂商提供的上位机软件为主,那这一部分是不是结合最新的npu技术,应该做出一些新的东西出来呢?

嵌入式-老费,一个分享专业嵌入式知识的blog 1337

利用RegSvr32来注册.NET COM组件

背景   前一段时间由于业务关系,须要在一个比较旧的系统编写一个补丁。原系统使用VB编程,但如果要使用VB来实现这个补丁的内容,对于我这个并不怎么接触VB的人来说太头痛了。由于平时使用的是C#来开发,于是便想到能否用编写.NET COM组件的方式来让VB调用。想到这两三下便写了个.NET COM测试组件,用VB测试调用测试OK。接下来就是进行后续的开发,可等到开发完成后到了补丁打包环节却傻眼

发展是曲折的但也是前进的 1301

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

COM组件注册真相

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34232617的博客 944

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

COM组件如何调试

在开发大型程序的时候,一般我们会将程序的功能模块化,常见的做法是采用COM组件,区别于一般的动态链接库,他的优点是毋庸置疑的,最大的特点在于它可以自己注册以及反注册,这样我们在创建相应的组件对象时就比较方面,不用考虑路径什么的,只要在电脑上已经注册过,则可以成功使用。 由于COM组件不是EXE,因此,它不能独立执行,必须附加在一定的应用程序上,通过设置相应的参数,就可以进行调试。依次打开“调试”

郁闷阳光的专栏 5347

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C#通过代码注册COM组件

using System; using System.Diagnostics; using Microsoft.Win32; namespace ChuckLu.Utility { public class Cmd { private Cmd() { } private st...

weixin_30493321的博客 451

VS2010 C++ 创建COM组件

1、项目中要使用到com组件,于是了解了一下com,并根据《C#高级编程》中关于com的介绍用vs创建了一下com,用于实验。以下均根据书中的demo做一遍,熟悉一下而已。 2、创建CoM组件不能使用C++或VB2010,而应使用VB6.0或C++。以下使用ATL、C++、VS2010.   使用C#或VB9.0可以创建.NET组件,VB9.0及C# 通过一个封装器就可以把该组件用作COM对象...

weixin_30266829的博客 1246

C# 获取COM控件注册状态,注册以及反注册COM控件

  每一个COM控件都有一个全球唯一的标识,CoClass的GUID,简称CLSID;   每一个COM控件注册后,都会在注册表中的 “HKEY_CLASSES_ROOT\CLSID”键下创建一个以COM控件的CLSID命名的键(带大括号),所以判断一个COM控件是否注册,可在“HKEY_CLASSES_ROOT\CLSID”键下查看是否存在以该COM控件的CLSID命名的注册表键。代码如下:...

weixin_34235457的博客 429
上一篇: C#基于ArcGIS Engine写的要素图层工具类
下一篇: 解决ArcGIS Desktop打开DWG文件中文乱码问题
acngiser
博客等级 码龄15年 118粉丝 214原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值