随笔-66  评论-444  文章-1  trackbacks-19
技术
指尖表达思想之颠...
(C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
摘要: 活动桌面引入一项新特性,当你在某些特定对象上旋停鼠标时,工具提示将显示它们的描述。我们可以使用 QueryInfo 扩展为Shell中的其它对象提供自定义的工具提示。阅读全文
posted @ 2008-09-03 16:35 柠檬的 阅读(3961) | 评论 (5) 编辑
(C#)Windows Shell 外壳编程系列8 - 同后缀名不同图标?
摘要: 如果是以前,我会对这句话十分吃惊。但现在这种现象比比皆是。除了我们的例子外,.NET 程序员最熟悉的莫过于 Sln 解决方案文件了。不同版本的 Sln 图标不同,上面有个小版本号提示。阅读全文
posted @ 2008-09-01 09:38 柠檬的 阅读(5259) | 评论 (17) 编辑
(C#)Windows Shell 外壳编程系列7 - ContextMenu 注册文件右键菜单
摘要: 从本节起,我所要讲述的是对 Windows 系统的“Shell 扩展”。“Shell 扩展”从字面上分两个部分:Shell 与 Extension。Shell 指 Windows Explorer,而Extension 则指由你编写的当某一预先约定好的事件(如在以. doc 为后缀的文件图标上单击右键)发生时由 Explorer 调用执行的代码。因此一个“Shell 扩展”就是一个为 Explorer 添加功能的 COM 对象。 阅读全文
posted @ 2008-08-29 17:17 柠檬的 阅读(7247) | 评论 (13) 编辑
.NET 异常处理
摘要: (好久没写过技术文章了,之前遭受了严重的打击,曾经沮丧不已;现已慢慢恢复过来^_^,因此不能荒废了自己的技术。) 从不出错的软件从某种程度上讲是不可能的! 和普通人的观念相反,创造可信赖的,健壮的软件并不是一件不可能的事情。大部分的商业软件,在长时间可以无重大故障的工作,但它们并非没有任何的错误,只是拥有低出错率,你可以迅速理解出错原因然后快速搞定它,并且,它不会因为外部错误而毁坏数据。软件中有错误是可以原谅的,甚至是可以预料到的;不可原谅的是您无法解决一个复发的错误,仅仅是因为您没用足够的信息。 另外,如果希望成功避免发生错误,就必须要求开发人员正确对待错误。 阅读全文
posted @ 2008-07-22 12:50 柠檬的 阅读(2304) | 评论 (4) 编辑
(JavaScript)实现在客户端动态改变Treeview节点的选中状态
摘要: Asp.net 2.0 中的 Treeview 非常好用,而且轻便。但在使用过程中,往往会发现一些不够人性化的地方。例如您要设计一棵树,里面放置了一些收藏的网址。在这棵树中,节点的 SelectAction 只有 Expand 和 NavigateUrl 状态,也就是说没有回调节点。这个时候您会发现一个严重的问题:点击节点后,节点不会显示为选中状态(背景颜色没改变),哪怕你已经设置了 SelectedNodeStyle ......阅读全文
posted @ 2007-05-18 09:28 柠檬的 阅读(3336) | 评论 (14) 编辑
(C#)用固定的字符集进行字符串加密的函数
摘要: 这个函数是我从 VB 翻译过来的,加密后的字符串字符固定在字符集里面,可以用于很多地方......阅读全文
posted @ 2007-04-30 15:20 柠檬的 阅读(2049) | 评论 (5) 编辑
(C#)Windows Shell 外壳编程系列6 - 执行
摘要: 许多人都知道 ShellExecute ,用于执行一个外部命令。但对于 IShellFoloder 对象来说,它的执行命令,都在它的 ContextMenu 里面了。记得前几节说过如何直接调用 ContextMenu 里的项,因此,执行一个 IShellFoloder,也无非是调用它的 ContextMenu 里默认的项而已阅读全文
posted @ 2007-04-27 12:57 柠檬的 阅读(6229) | 评论 (12) 编辑
(C#)Windows Shell 外壳编程系列5 - 获取图标
摘要: 本节讲述如何获取绝对 PIDL,以及图标索引。离资源管理器越来越近了。阅读全文
posted @ 2007-04-25 10:16 柠檬的 阅读(7634) | 评论 (21) 编辑
(C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令
摘要: 上一节说到如何弹出 IShellFolder 的上下文菜单,也就是 IContextMenu。有时候我们需要在这个菜单上面,加入一些属于自己的菜单项。举个例子,你打开资源管理器,查看左边目录树的右键菜单,会发现顶层多了一个折叠/展开的菜单项。好,我们也动手来加入这个菜单项。阅读全文
posted @ 2007-04-18 16:13 柠檬的 阅读(6679) | 评论 (13) 编辑
在C#中实现截获shell程序的输出
摘要: 在Windows环境下的所谓shell程序就是dos命令行程序,比如VC的CL.exe命令行编译器,JDK的javac编译器,启动java程序用的java.exe都是标准的shell程序。截获一个shell程序的输出是很有用的,比如说您可以自己编写一个IDE(集成开发环境),当用户发出编译指令时候,你可以在后台启动shell 调用编译器并截获它们的输出,对这些输出信息进行分析后在更为友好的用户界面上显示出来。阅读全文
posted @ 2007-04-17 14:10 柠檬的 阅读(1295) | 评论 (4) 编辑
(C#)Windows Shell 外壳编程系列3 - 上下文菜单(iContextMenu)(一)右键菜单
摘要: 对象的上下文菜单相关的接口是IContextMenu,通过对象的父文件夹的IShellFolder.GetUIObjectOf方法可得到该接口。得到该接口后,可以用IContextMenu.QueryContextMenu方法来生成上下文菜单的菜单项,用IContextMenu.InvokeCommand调用相应的命令。阅读全文
posted @ 2007-04-17 10:56 柠檬的 阅读(8091) | 评论 (4) 编辑
(C#)Windows Shell 外壳编程系列2 - 解释,从“桌面”开始展开
摘要: 让我们详细解释一下 Shell 编程中最基本的一些函数、结构体和枚举。并创建一个这样的例子,它允许你从“桌面”开始,一直展开到最深层的对象。阅读全文
posted @ 2007-04-17 01:02 柠檬的 阅读(7708) | 评论 (9) 编辑
(C#)Windows Shell 外壳编程系列1 - 基础,浏览一个文件夹
摘要: Windows Shell 编程,即 Windows 外壳编程。我们所看到的资源管理器以及整个桌面,都是一个 Shell。

关于 Windows 外壳的基本概念,我这里不做详细介绍,不了解的朋友,可以看看 姜伟华 的 Windows外壳名字空间的浏览。

好,现在让我们从基础学起,早日做出一个强大的资源管理器软件。(偶也是初学者,多多指教)阅读全文
posted @ 2007-04-16 20:33 柠檬的 阅读(12229) | 评论 (13) 编辑
走在爱情的边缘
posted @ 2007-04-14 22:48 柠檬的 阅读(369) | 评论 (1) 编辑
(C#)把磁盘目录树加载在窗体菜单中
摘要: 这又是一个没有技术含量的代码。写出来只是玩玩,所以也不敢放在首页。
这里有个问题,是获取文件/文件夹的图标。使用 System.Drawing.Icon.ExtractAssociatedIcon 只能获取大图标(不知道有没有高手能做到取小图标)。所以只能使用API了。设计一个这样的 ExtractIcon 类,提供一个静态方法 GetIcon ,用于获取小图标......阅读全文
posted @ 2007-04-13 08:43 柠檬的 阅读(2557) | 评论 (5) 编辑
.NET 中的对象序列化
摘要: 为什么要使用序列化?最重要的两个原因是:将对象的状态保存在存储媒体中以便可以在以后重新创建出完全相同的副本;按值将对象从一个应用程序域发送至另一个应用程序域。例如,序列化可用于在 ASP.NET 中保存会话状态,以及将对象复制到 Windows 窗体的剪贴板中。它还可用于按值将对象从一个应用程序域远程传递至另一个应用程序域。本文简要介绍了 Microsoft .NET 中使用的序列化。 阅读全文
posted @ 2007-04-11 15:53 柠檬的 阅读(328) | 评论 (1) 编辑
用C#开发较完整的Windows任务管理器
摘要: 这个代码没有什么技术含量,仅仅使用 WMI 和 API 实现了 Windows 任务管理器的部分功能。

但代码里面封装了一个 SystemInfo 的类,它提供了一些方法,可以获取以下系统信息:

CPU个数,CPU占用率
可用内存,物理内存
分区信息
进程列表,结束指定进程
根据物理地址获取 IP 地址,根据 IP 地址获取物理地址
获取网络信息
查找所有应用程序标题
阅读全文
posted @ 2007-04-11 09:47 柠檬的 阅读(12322) | 评论 (47) 编辑
(C#)为 TextBox 控件增加一个限制最大字节数的属性
摘要: 一直以来都知道,在 sql server 中,varchar类型是按字节计算的。例如 varchar(50) 可以存储50个英文字符,但只能存储25个中文字符(一个中文字符2个字节)。改为 nvarchar 可以解决这个问题,但在写sql语句的时候必须加上N标识,否则会产生乱码。

但最近用 C# 做数据库项目,才知道问题很严重。本来输入的合法性就应该在界面上做好限制,例如对于varchar(50) 的字段,能在界面上控制用户不能输入超过50个单字节字符,是最好不过的了。然后发现 textbox 的 MaxLength 计算的只是 Unicode 长度。

对于 Unicode ,我这里就不做描述了。设置 MaxLength 是不能很好的保证输入的合法性。因此我决定为 textbox 增加一个限制最大字节数的属性:MaxByteLength 。
阅读全文
posted @ 2007-04-10 18:03 柠檬的 阅读(7622) | 评论 (26) 编辑
[转帖].NET中异常处理最佳实践
摘要: 本文作者介绍了如何去更好的利用.NET的异常机制:不会去讨论怎样正确的报告错误信息;一面是青少年的博客文章编辑者应该用一种与直接面向编程人员的socket server完全不同的方式来报告出错信息。希望这篇文章可以帮助某些人更好的编码。阅读全文
posted @ 2007-04-10 16:21 柠檬的 阅读(420) | 评论 (0) 编辑
在C#中调用API获取网络信息和流量
摘要: 最近一项目中要求显示网络流量,而且必须使用C#。事实上,调用 IpHlpApi.dll 的 GetIfTable API 可以轻易获得网络信息和网络流量。只是要在C#中实现还是比较复杂。阅读全文
posted @ 2007-03-29 16:43 柠檬的 阅读(5374) | 评论 (11) 编辑

昵称:柠檬的
园龄:4年10个月
粉丝:51
关注:0
<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

搜索

 
 

我的标签

随笔分类

相册

链接

最新评论