摘要:
上一讲我们完成对Word的介绍,文本开始,我将着重介绍Outlook。Outlook是微软Office中一个非常实用的工具,尤其在一个拥有Windows Domain的公司局域网中,Outlook是员工最常用的通讯工具,所以对Outlook实行进一步的定制开发的需求量是很大的。本文中,我先以联系人的扩展为开始,讲解如何开发一个强大的Outlook插件。故事的开始首先我们假设一个场景。有一天,市场部的同事来找你帮个小忙(有经验的人都知道,一般这都是无尽痛苦的开始)。他们希望在Outlook的联系人信息上加入对方父母生日信息,方便他们做市场营销(嘿嘿,怎么营销大家自己想咯)。同时,最好能够和Out 阅读全文
摘要:
在上一篇文章中,我介绍了Word的对象模型和一些基本开发技巧。为了更好的介绍Word插件开发,我为本文制作了一个Word书签的增强版,具体功能是让用户在Word中选择一段文本,为它添加书签并其标志为高亮,同时用户可以为这段书签写注释,以后当用户点击这个书签时,我就会显示注释。以下是我录制的视频介绍: 这个插件将包括以下几个技术点: 添加右键菜单 添加右键菜单、控制右键菜单显示 WindowBeforeRightClick 事件 删除右键菜单 修改正文内容、样式 修改选定的内容 修改选定的样式 添加控件 添加书签 添加超链接 添加内容控件(Content Control) 基于用户选中内容,执行 阅读全文
摘要:
在前一篇文章中,我初步介绍了如何如何开发一个VSTO程序,在本文中,我将进一步深入介绍Word的插件开发。Word是一个大家在日常工作中一直接触的文档工具,也是微软最赚钱的产品之一。从最初的Word 1.0到现在的Word 2010历经了13代的演化,已经成为了一个比较复杂的系统。(这里稍微跑题一下,Office 2010的版本代号是version 14,但是我为什么说Word一共演化了13代呢?因为Office并没有Version 13,上一代的Office 2007是Version 12,微软觉得13这个死数字不吉利,所以直接跳过了……Oh my god)。言归正传,我录制了一段视频来演示 阅读全文
摘要:
今天在debug一个奇怪的问题,一个程序在开发机器上没有任何错误,但是安装在客户机器上之后,只要客户运行它,就立刻停止响应。更加奇怪的是,程序本身没有输出任何日志。开始以为是安装包做的不好,但是几次实验之后,证明问题出在程序本身。经过排除法,发现这个问题只在启用了UAC的Windows 7和Vista上。于是我包了一个很大的Try Catch,并且用MessageBox直接输出Exception的... 阅读全文
摘要:
开始之前,首先我介绍一下我的开发环境:VS2010 + Office 2010,是基于.Net framework 4.0和VSTO 4.0。以下的范例代码都基于这个,如果你使用的是VS2008,那么问题也不大,基本可以移植过去。需要注意的是.Net framework 4.0中增加了dynamic类型和可选参数,而这两点新的特性在VSTO 4.0中被广泛使用,新特性的详细内容我就不介绍了,(其实介绍的地方很多,Google一下就可以了),移植的时候需要稍微调整一下代码。 创建VSTO项目 环境搭建 要开发VSTO项目,环境搭建比较简单,微软这方面做得都做不错。只要安装了VS2010(需要勾选 阅读全文
摘要:
VSTO是微软提供给.Net开发人员的一个接口,通过他我们可以对Office程序做一些处理。但是这个接口并不尽善尽美,相比微软的很多其他产品,VSTO的稳定性并不好,相关的文档也很少。这种情况下,很多问题需要我们程序员自己去克服。我自己从08年进了现在这家公司,断断续续做VSTO开发已经快2年半了,不敢说对VSTO精通,但至少已经有了深入的解,尤其对开发中的一些Trick和一些Bug。准备写点东西记录一下这两年来的心路历程。同时也感慨于国内的VSTO文档资料实在匮乏,我自己在开发过程中走了不少弯路,希望我写的这些文档能对后来的开发者们有所帮助。我喜欢在写文档之前先准备一个提纲,然后再往里面填充 阅读全文
摘要:
PHP调试对我来说一直是一个问题,之前一直使用echo和var_dump这种打桩模式,效率很差,这次下定决心研究一下如何debug PHP,顺便把步骤记下来,加强记忆,也供大家参考。 首先说一下,如何使用XDebug来调试PHP程序。 我的开发环境 : 1, Eclipse PDT (Eclipse IDE for PHP Developers 1.3.0.20100617-0520),我比较喜欢Eclipse这个IDE,比较强大,插件也多 2, XAMPP version 1.7.4 (Apache 2.2.17,MySQL 5.5.8 (Community Server),PHP 5.3. 阅读全文
摘要:
LinqtoSql是一个不错的ORM框架,尤其是集成在VS2008中使用起来很方便。Sql CE 3.5则是VS2008中自带的一个轻量级的单机数据库。比较悲剧的是VS2008居然不支持把SQL CE中的表直接导入到DBML中,很难理解为什么微软这么做。但.Net framework 3.5中的LinqtoSql写明是支持SQL CE 3.5。也就是其中还是有方法可以实现的。 查询了Msdn得知,.Net Framework提供了一个叫做SqlMeta.exe的工具(一般位于系统盘下的Progream Files\Microsoft SDKs\Windows\v6.0A\bin),用这 阅读全文
摘要:
最近在用WPF做开发,项目进展的还算顺利,WPF总体来说还是比较方便的,其中变化最大的主要是Listview和Treeview控件,而且TreeView似乎在WPF是一个备受指责的控件,很多人说他不好用。其实我觉得是开发人员没有掌握好WPF中所传承的MVC思想。在View方面,WPF中的TreeView给了开发人员更大的灵活性,开发人可以非常简单定制每个Node乃至整棵树的外形。同时新的TreeView可以接受各种Collection作为ItemSource,非常灵活。只要简单地了解这些新加入的概念,开发起来就可以得心应手。 首先一个简单的Demo 如果这实现这个Demo呢?我们从MVC三个方 阅读全文
摘要:
最近受朋友委托,帮他写一个读取串口的程序。以前只知道需要调用Windows API来实现,查询了MSDN之后发现,从.Net framework 2.0开始,.Net内部已经封装了SerialPort类,使得读取串口内容变得非常容易。 SerialPort位于System.IO.Ports namspace下面。常用的构造函数为 portName:端口号,如COM1,COM2,COM3……baud... 阅读全文