08 2007 档案

剪贴板中的观察者(Observer)模式
摘要:最近因为工作需要,使用到了剪贴板的特殊功能。也翻阅了一些网上介绍的资料,发现要实现类似FlashGet那样下载工具中监视剪贴板的实现方式,对我们程序设计有点借鉴的意义。在Windows提供的剪贴板API中,针对监视这块,提供的是注册机制。主要函数是SetClipboardViewer这个API函数。这个函数的声明是这样的(Delphi):function SetClipboardViewer(hWndNewViewer: HWND): HWND; stdcall;通过这个函数,将一个窗口句柄,注册到系统剪贴板中。可以称注册后的窗体为一个Clipboard Viewer,众多的Viewer形成一 阅读全文

posted @ 2007-08-30 23:18 ohmyjava 阅读(147) 评论(0) 推荐(0)

程序员的处世哲学:好酒不怕巷子深
摘要:笔者按:好酒不怕巷子深,这是张之洞对泸州老窖的评价。时至今日,很多人都对这句话产生了怀疑,但这反而促使了我对这句话的反思。又是一年秋来到,刚过秋伏天,太阳热情却又不过火,风儿识趣地给身体维持最舒服的温度。这一切都很容易让人陷入回忆、陷入沉思。工作已经六年多了,每每想起这些,总有一些感慨。程序员的生活就是在一间装有空调和暖气的屋子里,度过最热的夏天,度过最冷的冬天。可是春天和秋天呢,却也同样只是隔着窗户看风景。程序员就是这样将青春都关在了屋子里,转而整日面对着电脑,敲打着键盘。有些人还因为鼠标磨出老茧,还有人因为酸痛,换成左手。当太阳照到屁股的时候,程序员才起床。当太阳已经落下的时候,程序员才回 阅读全文

posted @ 2007-08-26 19:37 ohmyjava 阅读(179) 评论(0) 推荐(0)

自动化测试框架: 设计的重构
摘要:最近对测试框架进行了重构,也对其中原有的一些设计进行了反思。其中不免有一些自我感觉得意之处,因此写出来和大家分享。这是一个重构的过程,所以将以重构的思路来讲述。重构对于一个系统来说,往往是必要的。他的必要性往往不在于重构的好处,而在于系统的成长的趋势。一个好的系统在初步阶段,在很多方面都会存在成长的空间,就如人在小时候长身体一样,如果补充的营养跟不上,一生都可能会受到影响。对于我们这个系统来讲,目前也正是初步使用验证阶段,所以重构的可能性非常大。当然了,如果从成本角度来看,在系统重构的时候,必须对系统的使用做严格的管理。幸好我们在早期对这方面比较谨慎,使用范围没有盲目扩展。因此重构所带来的影响 阅读全文

posted @ 2007-08-20 00:12 ohmyjava 阅读(298) 评论(0) 推荐(0)

自动化测试框架: Delphi中"包"的妙用
摘要:自动化测试框架的基础是钩子,也就是常说的HOOK机制。但这在实际的应用过程中可能会遇到一些问题。一旦要做钩子,那么就必须获取函数地址。由于我原先设计的钩子的目标函数,都是Delphi的内部函数,也就是说,这些函数在编译之后,很难找到。当然了,也是有几种方式可以找到的: 将代码植入到系统中,编译的时候可以直接找到。 编译的时候,带上Map文件,可以通过Map找到函数地址。测试框架以Dll的方式远程注入。 Delphi中的包,可以公布这些函数的地址 前两种方式,有一个最大的缺点,在于必须为自动化测试,特别编译一个版本。虽然说可以接受,但显然不是最好的方案。第三种方案虽然好,但是前提是系统必须构建在 阅读全文

posted @ 2007-08-12 11:00 ohmyjava 阅读(203) 评论(0) 推荐(0)

让你工作变得更加有趣
摘要:今日去打球的途中,同事聊起最近工作感觉无聊,问问我们感觉如何。我随口说我们没有啊,我和小J同学经常争争吵吵,感觉非常有意思。听者无心,说者有意。我回家后感觉这件事,说小是小,说大是大。工作如何才能有趣,应该也是一门学问啊。我倒没有什么方法能指导所有人都能将自己的工作变得有趣。但可以肯定的是,我就有这种感觉。于是我并开始反思自己过程中的感受,看看是否可以发现一些有规律的东东来。在此之前,我刚巧经历了一段低迷期。工作整天打着哈欠,整天过着猫一样的生活。感觉自己的工作都是围绕着别人的思路在走,完全找不到兴奋的感觉。上班也可能迟到。不过,后来我基本不迟到了。一位领导问其中的原因,我说很简单,闹钟提前了 阅读全文

posted @ 2007-08-11 02:48 ohmyjava 阅读(148) 评论(0) 推荐(0)

自动化测试框架: 所见即所寻
摘要:经过一段时期的框架准备和测试方案编写,实际的冒烟测试已经开始进行。目前还算比较顺利。当然了,工作忙了一点,所以博客的更新速度也降低了。在编写的过程中,发现对于独立的子窗体的处理还是比较方便和简单的。这些窗体的普遍特点就是结构简单,功能单一,所以对应的处理过程也比较方便。但是对于主窗体来讲,就非常不一样了。可以说,一个系统中的绝大多数窗体,都包含在主窗体中,那么,对于主窗体上的控件的定位问题,就没有我们刚开始设想得那么简单了。最大的问题,在于重复的问题。我们一般通过控件的一些特征描述,来描述一个控件。但是,在主窗体中,往往拥有相同特征描述的控件不止一个。这是非常有可能存在的事实。并且,由于很多控 阅读全文

posted @ 2007-08-11 00:34 ohmyjava 阅读(135) 评论(0) 推荐(0)

解决方法:Vista下执行EXE时报错“目录名无效”
摘要:最近老被这个问题困扰,执行很多程序,包括TotalCmd,一执行就报错:目录名无效。我看了,文件确实存在,路径也正确,用管理员权限运行,也是一样。在网上找了很久,也没有答案。今日发现,原来在Vista的Windows目录下的Temp目录被修改了,而TotalCmd这类程序,是直接访问这个临时文件夹的,如果不存在,则不能正常运行。解决方法很简单:在Vista的系统目录Windows下,建立一个Temp目录就可以了。 阅读全文

posted @ 2007-08-02 23:33 ohmyjava 阅读(260) 评论(0) 推荐(0)

导航