1、Marshal.GetActiveObject 函数会抛出异常 MK_E_UNAVAILABLE;可能是用户权限不同,将两个程序都用管理员启动即可;
2、如何查看程序的ProgID:注册表查看:HKEY_CLASSES_ROOT\ProgID\CLSID
1、Marshal.GetActiveObject 函数会抛出异常 MK_E_UNAVAILABLE;可能是用户权限不同,将两个程序都用管理员启动即可;
2、如何查看程序的ProgID:注册表查看:HKEY_CLASSES_ROOT\ProgID\CLSID
SolidWorks API与JSON数据自动化导出:打通CAD设计数据与外部系统
在现代工程设计与软件开发中,数据交换与自动化是提升效率的关键。JSON作为一种轻量级、通用的数据交换格式,已成为连接不同系统和应用的标准桥梁。其核心原理在于通过键值对的结构化方式,实现数据的序列化与反序列化,便于网络传输和程序解析。这项技术的价值在于打破了数据孤岛,实现了异构系统间的无缝通信。在工程领域,三维CAD软件(如SolidWorks)产生的设计数据(如模型参数、BOM表、质量属性)是产品研发的核心资产。通过调用SolidWorks的COM API,可以程序化地读取这些结构化数据,并将其转换为标准的
System.Runtime.InteropServices.Marshal.GetActiveObject(“Word.Application“)获取word对象失败
这个方法用于从运行中的 COM 组件中获取指定名称的对象实例。在你的情况下,你正在尝试获取名为 "Word.Application" 的 Word 应用程序实例。出现的错误信息中提到了 System.StubHelpers.InterfaceMarshaler.ConvertToManaged,这表明可能在进行 COM 互操作时发生了问题,可能是由于转换接口时出现了错误。另外,可以尝试使用其他方法获取 Word 应用程序实例,例如使用 new Word.Application() 创建新实例。
SolidWorks二次开发实战:API自动修改装配体零件位置与配合关系
SolidWorks二次开发是机械设计自动化领域的关键技术,它通过API接口实现对三维模型的程序化控制。其核心原理是利用COM技术调用SolidWorks内置对象模型,从而读取、修改零件特征、装配关系等设计数据。这项技术的价值在于将重复性手动操作转化为可复用的代码逻辑,显著提升设计效率和一致性。在参数化设计、标准件库管理、系列产品变型等场景中,二次开发能实现批量修改、自动装配和设计校验。本文以“自动修改装配体中顶盖子”为具体案例,详细拆解了如何通过C#和SolidWorks API实现零件定位、配合关系调整
[古怪问题] Marshal.GetActiveObject 在管理员模式下无法正常运行
问题: var obj = Marshal.GetActiveObject("PowerPoint.Application") 该代码在管理员模式下运行无法正常获取正在运行的 PPTPowerPoint.Application 对象,而在非管理员模式下可以正常获取。 针对该问题,微软的msdn官方文档,也没有给予说明。 https://docs.microsoft.com/...
Solidworks避坑指南:从安装配置到二次开发的实战经验总结
3D CAD软件是机械设计与工业制造领域的核心工具,其稳定运行依赖于操作系统、数据库、运行库及硬件驱动的协同工作。理解软件与系统环境的交互原理,是解决各类技术故障、提升工作效率的基础。对于工程师而言,掌握从安装部署、许可配置到性能优化、数据交互的全链路实践,具有极高的技术价值,能直接保障设计流程的顺畅与项目交付的稳定。特别是在处理大型装配体、进行二次开发或与Unity3D等平台进行数据对接时,系统化的故障排查与根治性解决方案显得尤为重要。本文基于资深工程师的实战经验,系统梳理了Solidworks在安装、许
SolidWorks二次开发实战:API批量修改装配体配合关系
在机械设计与CAD/CAE领域,软件二次开发是实现设计自动化、提升效率的核心技术。其原理是通过调用软件提供的应用程序编程接口(API),以编程方式控制软件行为,将重复性手动操作转化为可执行的脚本或插件。这项技术的核心价值在于能够显著减少人工错误、保证设计一致性,并实现参数化驱动的智能变更,尤其适用于规则明确、批量处理的场景。例如,在包含大量相同或相似零部件的装配体设计中,手动逐一调整配合关系耗时且易错。通过SolidWorks二次开发,可以精准遍历装配结构、识别目标组件,并批量修改其配合参数,从而将繁琐操作
解决.NET 8.0调用WPS COM组件失败的实战指南
COM(组件对象模型)技术是Windows平台上实现软件组件复用的核心机制,通过标准接口实现跨语言调用。在.NET与WPS Office的集成开发中,COM互操作问题尤为常见,特别是在.NET 8.0环境下对生命周期管理和架构匹配提出了更高要求。本文从COM基础原理出发,深入分析WPS组件注册机制和版本兼容性问题,提供包括注册表检查、架构验证、DCOM配置等系统化解决方案。针对企业级部署场景,特别探讨了静默安装参数和组策略配置的最佳实践,并给出包含备用CLSID列表和进程启动回退机制的健壮代码实现。通过Pr
C#上位机实时控制AutoCAD:COM对象生命周期管理详解
工业上位机开发中,常常需要与外部桌面应用进行自动化交互,以实现流程化操作。COM作为Windows平台成熟的组件模型,提供了一套跨语言的对象调用机制,其核心在于引用计数管理,决定了外部程序能否干净地释放对象、彻底退出目标进程。对于使用C#的开发者而言,利用COM自动化控制AutoCAD,不仅能够实现图纸的临时打开与关闭,还能有效避免进程残留、锁文件堆积等常见问题。此类技术广泛应用于自动出图、批量图纸转换及生产管理系统中。本文以C#实时控制AutoCAD的打开与关闭为例,解析从COM引用、实例获取、文档操作到
Altium Designer BOM导出原理与ERP对接实战
BOM(物料清单)是硬件研发与供应链协同的核心数据载体,其本质是将原理图元器件属性结构化映射为可执行的制造指令。理解Altium Designer中BOM的数据源机制——即属性字段如何被OutJob或Report引擎提取、过滤、拼接与输出——是实现准确交付的前提。技术价值在于规避因字段缺失、命名不匹配、分组逻辑错误导致的采购错料、产线停线等工程风险;典型应用场景包括ISO体系下的归档交付、研发阶段的快速比对、以及与用友U8/SAP等ERP系统的字段级对接。本文聚焦altium designer develo
Unity迷宫生成与交互验证实战指南
迷宫生成是数据结构与游戏开发中的经典算法实践,其核心在于将抽象的二维网格逻辑转化为可渲染、可交互、可验证的可视化系统。基于Unity引擎,通过Tilemap构建物理精确的网格场景,结合ScriptableObject实现数据驱动的迷宫建模,并利用CharacterController与TilemapCollider2D保障帧独立移动与精准碰撞检测。递归回溯、Prim等算法在Unity中需适配栈管理与随机控制以避免溢出和不可复现问题,而BFS路径验证与Profiler性能基准则支撑实验结论的科学性。本文覆盖从
Com连接问题 (GetActiveObject不能获得实例)
Com连接问题 (GetActiveObject不能获得实例), 請高手指教.
C#启动获取SolidEdge进程的方法
需要提前引用命名空间 using System.Runtime.InteropServices; 我们现在以一个单击按钮事件进行展示 private void button1_Click(object sender, EventArgs e) { try { // 连接SolidEdge程序 SeApplication = (SolidEdgeFramework.Applica
模型参考自适应控制(MRAC):让PID参数动态优化
本文深入解析模型参考自适应控制(MRAC)技术,它通过实时调整PID参数,使控制系统能自动适应系统特性变化和外部干扰。文章详细介绍了MRAC的工作原理、数学基础,并提供了用C语言实现的实战代码示例,帮助工程师解决传统PID控制在非线性、时变系统中参数整定繁琐的难题。
2021-03-09 几种读取Excel的方法二
几种读取Excel的方法二 C#跨进程监视Excel 进程之间不能直接控制,只能通过Invoke进行调度,今天这个实验是通过在excel表格中输入一些内容,然后在窗体中进行显示 第一步新建一个窗体类项目 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Tex
Linux内核4.14版本——drm框架分析(1)——drm简介
drm框架分析
redhawk-sc(seascape)学习日志2
design view是主view,是所有seascape view中最root的部分,一个design view可以驱动多种类型分析比如静态IR drop,动态IR drop以及EM.这些分析可以在不同的PVT和翻转率下.Design view是一个必须的view对于redhawk中的任何类型分析来说。seascape view相当于一个容器,用于保存各种和设计相关的数据,类似于逻辑信息、物理信息等等,每个view都有其对应的输入件和依赖,这些view都是redhawk用于各种类型的分析所需。
c#的CAD二次开发两种方式
2,添加引用--浏览--从AutoCAD2008的安装目录C:\Program Files\Autodesk\MDT 2008下,找到引用acdbmgd.dll和acmgd.dll。//删除不需要的实体。1 引用AutoCAD的安装目录下的acdbmgd.dll 和acmgd.dll的版本是 17.1.0.0,从其属性中。将“复制本地” 改为 “False”,这样形成的dll 的方法,在AutoCAD中就可以认识,不再是未知的命令。/// 类初始化,试图获取一个正在运行的AutoCAD实例,
电力抄表协议DL/T645和698.45到底有啥区别?一张图帮你选对协议
本文深入对比了电力抄表协议DL/T645和DL/T698.45的技术差异,从协议架构、报文结构、功能覆盖到实施成本进行全面分析。通过实际案例和数据,揭示698.45协议在通信效率、业务扩展性和长期成本上的优势,并提供清晰的选型决策流程图,帮助工程师根据具体需求选择最适合的电力抄表协议。
C#开发VSTO的入门级教程
C#开发VSTO的入门级教程,包括基础语法、创建Office外接程序即com加载项、自定义功能区、创建任务窗格、最终项目打包部署等。
Light Tools 8.4 在 win10系统上的安装方法(64位)
** 总的来说安装LT需要以下步骤(折腾了三天终于装好): 安装LT软件–禁用签名–加载含数字签名的第三方inf–添加注册表/安装驱动/添加密钥–成功破解 一、下载对应的LightTools 8.4版本软件,如下图为解压后的文件: 并选择 进行默认安装。 二、禁用数字签名。这里我用了两种方法,一种不行就换另一种,最终成功禁用。 方法1: 1、输入“cmd”并以管理员身份运行; 2、输入或复制 bcdedit.exe /set nointegritychecks on (此命令若没成功,再试bcded
基于PLC1200与CB1241的RS485从站Modbus Rtu通信实战指南
本文提供了一份详细的西门子S7-1200 PLC与CB1241 RS485通讯板实现Modbus RTU从站通信的实战指南。内容涵盖从硬件接线、博途软件组态、关键参数设置到程序调试与测试的全过程,重点解析了Modbus_Slave指令配置与数据块映射,帮助工程师快速掌握工业自动化系统中的数据采集与设备接入技术。
Catia开发之测量(C#)
编辑于江苏南京2021年7月31号。 Catia中测量的方法有两种,第一是通过获取文档的SPAWorkbench对象,通过SPAWorkbench获取Measurable对象,进而获取需要测量的参数,如角度、长度、体积等。这种方法只适用于当个物体的测量,对于两个物体如点的距离、线的间距等无法进行测量。 相关代码如下 //1.首先获取当前文档的SPAWorkbench对象 var spaWorkbench = oDoc.GetWorkbench("SPAWorkbench") as SPAWork
还在用 RaiDrive/Rclone 挂载网盘?教您使用Windows 原生 WebDAV 丝滑直连 AList/Openlist,让你的网盘秒变本地硬盘!
网盘文件分散管理?😩 别再依赖第三方工具了!本文教你如何在 Windows 下,利用原生 WebDAV 功能,将 Openlist 网盘直接映射为本地硬盘!💻 操作简单,告别繁琐,让你的云端文件像本地文件一样丝滑!🚀 轻松实现高效管理,快来体验吧!

被折叠的 条评论
为什么被折叠?