Windows开发实用技巧
文章平均质量分 73
东邪独孤
欢迎来到桃花岛宇宙万物尽在其中
展开
-
捕捉桌面上的窗口信息
今天我为大家带来一个有趣的例子,有点像Spy++的功能,通过鼠标在屏幕上移动,并实时捕捉指定坐标点处的窗口信息。窗口信息包括窗口标题,窗口句柄,窗口类名,以及呈现所捕捉窗口的缩略图。 现在我们不妨来思考一下,要实现这些功能,我们需要准备哪些技术要点?1、获取当前鼠标指针的屏幕坐标,这个用System.Windows.Forms命名空间下的Cursor类的Position属性就可以知原创 2013-05-27 17:05:44 · 4558 阅读 · 3 评论 -
实战MEF(4):搜索范围
前面我们了解了MEF中扩展类型的导入与导出,本节我们来看看几个常用的范围,即搜索扩展组件的范围,如当前程序集或某个目录。原创 2013-09-04 17:36:59 · 6037 阅读 · 0 评论 -
实战MEF(3):只导出类的成员
MEF有着许多潜在的优势和实用价值,我们应该毫不保留地去发掘那些不被别人所知实用技巧,最大化地提高开发效率。前面我们演示过整个类型的导出与导入,本文我们就继续深入,看看如何导出某个类型的部分成员,如属性、字段、方法等。原创 2013-08-29 12:20:36 · 3482 阅读 · 0 评论 -
实战MEF(2):导出&导入
本文将介绍MEF框架中如何导出与导入扩展类型。 文章写在我的另一个博客中。http://www.cnblogs.com/tcjiaan/p/3277242.html原创 2013-08-23 12:15:06 · 3063 阅读 · 0 评论 -
如何在入口点使用异步等待(await)
本文将解决在Main入口点方法上不能使用async关键字的问题。在C#5中引入了一种很简单的实现异步等待的方法,即配合使用await运算符和async关键字。但是,async关键字是不能直接用在入口点上的,本文通过文法封装和委托两种方法解决该问题。原创 2013-08-10 17:50:32 · 10269 阅读 · 0 评论 -
实战MEF(1):一种不错的扩展方式
在过去,我们完成一套应用程序后,如果后面对其功能进行了扩展或修整,往往需要重新编译代码生成新的应用程序,然后再覆盖原来的程序。这样的扩展方式对于较小的或者不经常扩展和更新的应用程序来说是可以接受的,而对于像ERP系统那样复杂而且常常需要扩展的应用程序,这种扩展方法就不够方便,因为每次都要修改源代码或重新引用组件。尤其是组件(许多dll),如果每编写一个新组件又要在主项目中引用一次,显然主项目就不得不经常重新生成。要是能有一种机制,可以在主项目应用程序不作任何修改就可以自动识别并扩展组件,就会很便捷,我们原创 2013-08-21 20:04:58 · 6152 阅读 · 0 评论 -
非常简单的语音朗读功能
在System.Speech.Synthesis命名空间下(位于程序集System.Speech中)有一个SpeechSynthesizer类,可以让我们极为轻松地就可以使用系统安装的语音阅读功能。这玩意儿不错,既简单又实用。原创 2013-07-30 20:59:02 · 10807 阅读 · 4 评论 -
关于枚举的一两件私房事
简单介绍Enum类的GetNames方法和Parse方法,使用二者,可以对枚举类型进行特定的操作。仅作为一种实用技巧分享。原创 2013-07-04 18:33:48 · 3382 阅读 · 1 评论 -
桌面应用也可以提供HTTP文件下载
我们可以考虑,如果我们编写一个仅仅提供HTTP下载相关的少数功能的应用程序,我们似乎没有必要大动干戈在机器上弄个服务器搞个Web站点。通常这种情况,做个小小的窗口程序就可以完事了。所以,就会想到使用桌面应用程序来提供HTTP下载这想法了。本文将用一个例子介绍使用HttpListener类来在Windows桌面程序中实现提供HTTP下载的功能。原创 2013-07-18 17:46:30 · 4706 阅读 · 1 评论 -
还记得BackgroundWorker吗?
今天一早醒来,猛然发现,很久没写博客了,算一算,其实应该不到一个月,可总觉得寰宇一个月,世上已千年。是啊,于是内心萌发了一股冲动的力量,今天该写点什么,可是,一时想不出来。打开电脑,突然想起来,昨天下午,有位仁兄和我讨论过一个事,不妨拿来说说。她说她的牛逼程序要处理一堆东东,要弄个进度条作提示,不过进度条是在另一个窗口中的,她的想法是,在开始处理数据时弹出进度对话框,实时显示处理进度,当处原创 2013-06-22 10:48:38 · 7803 阅读 · 0 评论 -
其实,反射还有另一种功能
说到反射嘛,估计各位不陌生,尽管很多人不知道到底是什么,当然也有人将其看作是“反编译”,有点像吧,但不能说是反编译,虽然有个“反”字,但没有“编译”。所以,我给反射下了这样一个概述,准确与否,也不清楚:反射可以动态获取程序集信息,或程序集中的类型信息,以方便动态调用。动态调用的好处是节约资源,通常情况下,我们添加程序集引用会在项目的引用中加入,这意味着只要应用程序运行了,这些程序集就会原创 2013-06-04 18:02:45 · 3368 阅读 · 1 评论 -
想在桌面上涂鸦吗
我曾经说过一句致理名言:涂鸦是人生一大乐趣。只要你懂得涂鸦之道,涂鸦是非常好玩的。在窗口上画多了,不爽了,想不想在桌面上画? 不要惊讶,这是可以的。Graphics类可以用一个静态方法FromHwnd来创建实例,如果想在桌面上涂鸦,只要得到桌面的句柄就可以了。那么如何得到桌面的句柄呢?要用到一个非托管API,即 [DllImport("User32.dll")]原创 2013-05-28 18:16:42 · 6184 阅读 · 1 评论 -
实战MEF(5):导出元数据
在导出组件类时,我们可以将一些附加信息(称为元数据)一同导出。本文我将给大家简单介绍一下在MEF框架中导出元数据的方法。原创 2013-09-16 17:00:37 · 4666 阅读 · 0 评论