解决办法: 勿以管理员权限运行Visual Studio…
问题: var obj = Marshal.GetActiveObject("PowerPoint.Application") 该代码在管理员模式下运行无法正常获取正在运行的 PPT PowerPoint.Application 对象,而在非管理员模式下可以正常获取. 针对该问题,微软的msdn官方文档,也没有给予说明. https://docs.microsoft.com/zh-cn/dotnet/api/system.runtime.interopservices.marshal.…
Return value/code Description 0x00030200 STG_S_CONVERTED The underlying file was converted to compound file format. 0x00030201 STG_S_BLOCK The storage operation should block until more data is available. 0x00030202 STG_S_RETRYNOW The storage operatio…
using Word = Microsoft.Office.Interop.Word; int _getApplicationErrorCount=0; bool _isMsOffice = true; /// <summary> /// 获取最后一个当前处于活动状态的Word进程 /// </summary> /// <param name="isLog">是否将检测到Office版本号写进日志,可根据项目需要删除该功能</param>…
今天遇到一个问题,就是需要把多个Word文档的内容追加到一个目标Word文档的后面,如果我有目标文档a.doc以及其他很多个文档b.doc,c.doc…等等数量很多.这个问题,如果是在服务端的话,直接使用OpenXML技术,读写文档就可以实现,这样性能较稳定,但是需要对OpenXML有一定的了解.如果在客户端机器上,可以使用Word PIA实现. 由于本人对于Word PIA较熟悉,所以采用了该方法.但是在实现的过程中,也是有很多种思路的. 将b.doc打开,将其中的内容选中,复制到剪贴板,然后…
Excel开发过程中有时候会遇到各种奇怪的问题,下面就列出一些本人在开发中遇到的一些比较典型的问题,并给出了解决方法,希望对大家有所帮助. 一 插件调试不了以及错误导致崩溃的问题 在开发机器上,有时可能会装有多个版本的.NET运行时,有时候也可能装有多个版本的Visual Studio,本人的开发机器上就安装了3个版本的Visual Studio,在最新的Visual Studio 2013出来之后,就迫不及待的把工程文件迁移到2013上来了,但是在设置了启动程序之后,调试的时候,断点根本不能命…
这几天在北京做一个大桥的监测系统的项目,涉及到一个功能,那就是采集数据,处理后,希望能自动生成一个报表,只需要在一个模板的基础上加几个数就可以了,但因为希望生成的是.docx格式的word2007/2010文件,所以中间还遇到不少困难,现在终于基本完成了这个功能,趁现在还记得在这里写篇博文记录下. 我的工作环境: Windows XP SP3 Microsoft Visual Studio 2010 Microsoft Office 2010 首先,我在VS2010中新建了一个控制台应用程序,然…
用Com方式启动Civil3D时,经常会在第一次启动时出现各种异常. 1. RPC_E_CALL_REJECTED 0x80010001 被呼叫方拒绝接收呼叫 解决方案:外部程序通过COM启动AutoCAD时RPC_E_CALL_REJECTED的问题解决办 2. CO_E_SERVER_EXEC_FAILURE  0x80080005 服务器运行异常 一般会在第一次启动的时候出现,第二次启动的时候就好了.网上查找了很多资料,没有找到好的解决方案.可能跟具体的系统配置有关系. 解决办法,可以放在…
做VS插件开发,不得不了解DTE,有了DTE我们就可以与VS交互了,比如说获取当前选择的文件,比如说获取当前主窗口,比如说获取编译器等等,关于DTE接口更多的说明我把接口地址贴出来方便大家查阅. http://technet.microsoft.com/zh-cn/library/envdte.dte(v=vs.100) 如何正确的获取DTE呢? 以下是从网上找到的一些方法 EnvDTE80.DTE2 myDTE2 = (EnvDTE80.DTE2)Microsoft.VisualBasic.I…
Word文档合并的一种实现   今天遇到一个问题,就是需要把多个Word文档的内容追加到一个目标Word文档的后面,如果我有目标文档a.doc以及其他很多个文档b.doc,c.doc…等等数量很多.这个问题,如果是在服务端的话,直接使用OpenXML技术,读写文档就可以实现,这样性能较稳定,但是需要对OpenXML有一定的了解.如果在客户端机器上,可以使用Word PIA实现. 由于本人对于Word PIA较熟悉,所以采用了该方法.但是在实现的过程中,也是有很多种思路的. 将b.doc打开,将其…
浅谈Excel开发:九 Excel 开发中遇到的常见问题及解决方法   Excel开发过程中有时候会遇到各种奇怪的问题,下面就列出一些本人在开发中遇到的一些比较典型的问题,并给出了解决方法,希望对大家有所帮助. 一 插件调试不了以及错误导致崩溃的问题 在开发机器上,有时可能会装有多个版本的.NET运行时,有时候也可能装有多个版本的Visual Studio,本人的开发机器上就安装了3个版本的Visual Studio,在最新的Visual Studio 2013出来之后,就迫不及待的把工程文件迁…
最近写了个工具,将指定目录下的CAD文件批量转换为图片格式. 首先需要添加对应的引用 : 在AutoCAD2008的环境下对应AutoCAD 2008 Type Library 和 AutoCAD/ObjectDBX  Common 17.0 Type Library 这两个引用, 笔者由于是AutoCAD2010,只找到了AutoCAD 2010 Type Library 没能找到第二个,百度后得知添加对文件“C:\Program Files\Common Files\Autodesk Sha…
控制台应用, 代码如下: using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading; using System.Reflection; using Microsoft.Office.Interop.Word; using Micr…
众所周知,对AutoCAD进行二次开发用到的主要工具有:ObjectArx,VBA,VLisp.但它们的优缺点是显而易见的:ObjectArx功能强大,编程效率高,但它的缺点是编程者必须掌握VC++,而这门语言非常的难学;VBA和VLisp虽然简单易上手,但它们对于开发大型的程序好象无能为力.那究竟有没有一种语言能结合它们的优点而尽量避免它们的缺点呢? 回答是肯定的,那就是微软新推出的21世纪编程语言C#.关于C#的详细介绍,大家可以参考有关的文章. C#是通过AutoCAD ActiveX 这…
两种方法: SldWorks App = new SldWorks(); App.Visible = true; //SldWorks.Application.24是2016 // App = (SldWorks)Marshal.GetActiveObject("SldWorks.Application.20");…
# Hack 24   定制快捷键 VS能够做很多键盘的配置,其实在VS中目前已经发现有很多的快捷键了,但是在这个技巧篇里会学到如何创建新的快捷键,以及编辑已有的快捷键.VS中包含很多的命令,只有其中的一小部分定义了快捷键,可以通过“选项”窗口来添加或者移除快捷键定义. (1) 添加定制快捷键 在这里你将会为“生成->重新生成解决方案”命令添加快捷键,首先通过“工具->选项”打开选项窗口,并选择环境文件夹下的子项“键盘”.可以通过这个界面来编辑或创建快捷键. VS不允许对键盘映射的默认方案进行…
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Excel = Microsoft.Office.Inter…
C# 读写xml.excel.word.access 这里只是起个头,不做深入展开,方便以后用到参考 读写xml,主要使用.net  的xml下的document using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System.Xml;using System.Xml.Serialization; public static void Ge…
1 环境搭建:安装CAD 和objectArx库,这里安装的是cad2012和objectArx2010 ,vs是2010 2 新建一个类库项目,引用objectArx安装目录下inc文件夹下的AcDbMgd.dll和AcMgd.dll,这里注意X86和X64系统的区别 3 添加两个类,一个继承IExtensionApplication接口,这个是dll的入口,cad会从这个类加载程序做一些初始化的操作:另外一个可以写自定义的一些cad命令 cad的引用: using Autodesk.Auto…
自己在用的Excel操作类,因为经常在工作中要操作Excel文件,可是使用vba实现起来实在是不方便,而且编写也很困难,拼接一个字符串都看的眼花. 这个时候C#出现了,发现使用C#来操作Excel非常方便,比VBA不知道高到哪里去了,而且直接就可以上手,所以我就把常用的一些操作封装成了一个类,编译成DLL方便在各个项目中调用,或者作为excel加载项,写的不好的轻喷,毕竟我是门外汉一个. 其实使用第三方控件也可以实现相应的功能,而且某些控件也是使用Visual Studio Tools for…
Excel插件的部署问题难倒了不了的用户,特别是VSTO的部署,用ExcelDna开发的xll文件部署方便,不挑用户机器环境,是其开发Excel插件的一大优势. 其开发出来的xll文件,最终还是需要考虑用户机器Excel位数的问题,32位的Excel安装32位的xll文件,同理64位安装64位的xll. 如何判断用户机器是32位还是64位的OFFICE,并将对应位数的xll文件安放到用户机器上,这个问题之前笔者曾经花时间找过资料,最终实现了想要的功能效果. 同样的因笔者非专业程序猿,可能写出来的…
https://blog.csdn.net/mywaster/article/details/50220379 最近做一个项目,要求将dwg文件转化为pdf,开发工具VS2010 + AutoCad 2011, 在网上查了很多代码都有各种问题,解决重重的问题,终于实现了批量转化. 1.首先引入com组件 AutoCAD 2011 Type Library AutoCAD/ObjectDBX Common18.0 Type Library 2.创建/获取CAD实例 private static A…
https://blog.csdn.net/dengyiyu/article/details/2201175 本文主要给大家介绍一下SmartSoft中用C#.Net实现AutoCAD块属性提取的方法,并给出实例代码与大家共享.此类实现AutoCAD块属性提取功能,在VS.Net2003(2005)+AutoCAD2004(2007)下调试通过. using System; using AutoCAD=Autodesk.AutoCAD.Interop; using System.Runtime.…
我使用了COM对象来在cad2018中创建table表格,需要的ObjectArx开发包可以在官网上下载,并且需要使用.netframework4.6的库才行. 项目里除了引用常规的Cad开发dll,还要引用COM组件: Autodesk.AutoCAD.Interop.dll和Autodesk.AutoCAD.Interop.Common.dll ObjectArx下载地址: https://www.autodesk.com/developer-network/platform-technol…
Outlook 邮件助手 1 Overview 2 C# 编程 3 Outlook 设置 3.1 Outlook 2013 3.2 Outlook 2010 1 Overview 本章将示例如何开发一个邮件助手,对新收到的邮件进行自定义操作.例如: 对于垃圾邮件,直接删除 对于不重要邮件,自动标为已读 对于重要邮件,弹出提醒 2 C# 编程 需要解决如下几个问题 如何连接到 Outlook 如何获得新收到的邮件 如何读取邮件的信息,例如标题,发送者,邮件正文等 如何对邮件进行操作,例如删除,标为…
背景 首先office的产品powerpoint是支持二次开发的,这里的二次开发并不是指在powerpoint产品中嵌入一些自己的控件,而是一些简单的automation的控制(进入放映状态,上一页,下一页等),并不对powerpoint的产品有任何修改.microsoft官网就提供了很多关于automation的demo,这些demo都可以在 https://code.msdn.microsoft.com/site/search?query=&f%5B0%5D.Value=&f%5B0%…
Object到String类型转换的四种方式 通常object到string有四种方式:(假设有object obj) obj.ToString, Convert.ToString, (string)obj, obj as string. 他们都能将object对象转换成string对象.我就讲讲他们的异同以及在实际中应该使用哪个. 前两个方法通常是由别的对象得到string对象,它们间的区别只表现在要转换的对象为null时,如果obj为null,调用obj.ToString方法会导致NullR…
Marshal类 提供了一个方法集,这些方法用于分配非托管内存.复制非托管内存块.将托管类型转换为非托管类型,此外还提供了在与非托管代码交互时使用的其他杂项方法. 命名空间:System.Runtime.InteropServices Marshal 类中定义的 static 方法对于处理非托管代码至关重要.此类中定义的大多数方法通常由需要在托管和非托管编程模型之间提供桥梁的开发人员使用. 例如,StringToHGlobalAnsi 方法将 ANSI 字符从指定的字符串(在托管堆中)复制到非托…
IIS中使用Microsoft.Office.Interop.Excel 异常1: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失 败,原因是出现以下错误: 80080005. 解决方案: A. 检查IIS发布的网站上的用户组是否有Administrators用户权限 B. 配置COM组件,用win+r命令打开命令运行窗口,输入Dcomcnfg命令,进入组件服务配置界面,找到“Microsoft Excel App…
什么是0x8013XXXX 有时您可能会遇到从.NET返回的神秘HRESULT,它以0x8013开头,例如0x80131522.不幸的是,Visual Studio附带的错误查找并不能真正处理那些奇怪的HRESULT.它们是什么? 事实上,它们是由.NET/CLR在头文件中定义的.所有这些失败/成功的HRESULT都是在平台SDK include目录的corerror.h中定义的(通常是C:\程序文件(x86)\ Microsoft SDKs\Windows\v7.0A\include).所有这…