- 博客(101)
- 资源 (10)
- 收藏
- 关注
原创 编程是一场修行
这是一条坎坷曲折的路,从PG到SE,从SE到PL,从PL到PSM,从PSM到SA,每一站都相距甚远,有时还要面对诱惑作出两难的选择。一路行来,多少辛酸,多少甘甜,甚至满身的伤痛,满怀的寂寞,难以向人诉说。我们只能认准目标,坚定步伐,一步一步走下去。编程,修的是身。这是一条精彩无限的路,从UI到数据库,从套间到服务,从框架到平台,从本地到云端,多少的风景可以领略,多少的高山需要攀登。从来没也哪一种职
2015-12-23 08:12:34
1203
转载 [译]菊花驱动开发(ADD)
原文地址:http://dearymz.blog.163.com/blog/static/20565742009111514039714/ E文不自信的(比如秒大刀),可以参考Google汉语译文,顺便感谢下Google。Asshole driven developmentThe software industry might be the w
2015-02-17 06:39:45
1514
转载 那些炒作过度的技术和概念
StackExchange.com上有一个贴子在评论着最近20年来被炒作过度的技术,对于出现的结果,大多数赞同,也有一些不赞同。下面我从前15名挑了10个(Java的WORE我去掉了,TDD我也去掉了,因为我觉得他们应该没有炒作过度,而且都不错),按原贴的顺序罗列如下:(后面的一些评论是我加的,欢迎大家讨论)Top 10 过度炒作的技术和概念Unified Modeling L
2015-02-17 06:35:42
1560
原创 用C++ SDK实现动态数组类
C++ SDK没有直接提供动态数组功能,虽然可以使用MFC的CArray类,或者用指针+new来实现,但前者需要MFC库,后者使用时不易理解且运行效率低,为此,我把很久前自己写的一个简单的动态数组类贴出来,希望给一些朋友启发。 代码说明:本类在数组成员的赋值和内存分配上作了优化,对大数组的性能有明显提高。 使用方法:将代码复制到头文件CMyArray.h文件
2012-09-16 14:15:02
1813
1
原创 直接获得TP-LINK路由器外网IP地址
要获得路由器的外网(或公网)IP地址,一般的做法是先访问外网的一个网站(如,由这个网站记录下该路由器的外网IP地址,然后再返回结果。其实对于某些型号的路由器,我们完全可以直接读取它的外网IP,比如TP-LINK,下面是VB.NET实现代码,另附连接和断线两段代码:''' ''' 连接外网 ''' Public Sub Connect(ByVal UserName A
2011-12-14 10:04:26
13927
原创 使用“带外数据”实现TCP心跳包
公司有一个基于TCP的IM项目,开发人员将心跳包与数据流混在了一起,从而增加了数据提取的难度和出错的机率,我提出使用带外数据来实现心跳包,该开发人员认为这是一种过时的不被.NET支持的技术特性,其实.NET不是空中楼阁,他的所有技术都是基于原来WIN32技术的基础之上的,只不过增强了OO特性而已,为验证自己的想法,因此花费了几个小时编写了使用“带外数据”实现TCP心跳包的DEMO类,并成功通过测试
2011-11-17 10:17:07
4660
原创 设置和获得VB进程返回值
有时,我们需要设置和获得某个进程结束时的返回值,然后VB并没有C语言中Exit之类的函数,因此我们需要借助API来实现,思路如下:
2010-12-22 10:07:00
4021
10
原创 使用XMLHTTP组件实现HTTP协议下的分块断点续传
使用XMLHTTP下载基于HTTP协议传输的文件,如果文件较大,一般可以考虑使用异步方式,但VB里XMLHTTP异步仍然会造成线程阻塞,如何避免这种情况,本文章就此作了一个演示
2010-12-01 16:20:00
3314
8
原创 VB6位运算
这几天在网上看到几篇关于VB位运算符的帖子,有篇文章叫《VB移位运算函数》的,代码不仅繁琐、效率低,而且存在漏洞,在网上被四处转载,有些误人子弟。为此,写了几个关于VB位运算的函数,以供大家学习交流。
2010-11-03 20:21:00
8955
10
原创 在VB中将类对象序列化为字符串
有时候,我们需要把一个类对象序列化成字符串保存起来,或者通过网络传输给另一台机器,然后再异步或异地克隆出原来的类对象,比如ACCESS没有服务器端,而我们加它加了一个服务器代理程序,代理程序负责把查询出来的记录集传输给客户端,这时,我们可以遍历记录集内容,生成一个字符串传输给客户端,然后在客户端再加载记录集内容。其实,利用VB内置的类对象PropertyBag,我们还可以直接序列化记录集对象,传输给客户端后,客户端直接复制出该对象就可行,比遍历记录集的效率提高了N倍。
2010-08-03 10:41:00
4375
5
原创 不使用BHO监控IE窗口事件
有时候我们想在应用程序中拦截某个IE窗口的事件,大多数情况下我们会想到BHO,但BHO安装不方便,而且容易被杀毒软件当作木马给清理掉。其实,在VB里还有更好的办法,就是使用ShellWindows对象。
2010-07-23 09:42:00
4452
10
原创 GetTickCount函数计时置0的解决办法
使用API函数GetTickCount来计时非常方便,可惜它有一个致命的缺点,就是在计算机运行49.71天后,会自动置0,从而导致计时错误,因某些服务器应用程序需要长时间不开机运行,GetTickCount函数显然满足不了要求。
2010-07-07 15:23:00
4202
1
原创 用数组方式快速导出MSFlexGrid表格数据到Excel表格中
本来从MSFlexGrid或MSHFlexGrid导出数据到Excel中,是一个非常简单的问题,但论坛里还是经常有人问如何导出,有的虽然知道用单元格赋值方式循环导出,但速度太慢,因此写了一个通用的数据导出函数,由于以数组方式一次性赋值,运度速度得到了极大提升,需要的朋友可以参照以下代码,稍作修改,就可以写出用于其它表格控件向Excel导出数据的功能了。
2010-06-24 14:05:00
4580
1
原创 VBS获得外网IP并发送到指定邮箱
程序主要实现了获得本地外网地址(如果有路由器,则为路由器外网地址)、自动下载并注册MSWinsck.ocx控件、使用WinSock发送邮件、实现BASE64编码、开启远程桌面服务、脚本后台定时运行等功能,感兴趣的朋友可以参见代码。
2010-06-14 15:32:00
4390
原创 一个简单的VB窗体类(修正版)
又有一段时间没更新博客了,恰好刚才在写代码时,想起以前写的一个VB窗体类的代码,于是扒了出来:* ************************************************** ** 模块名称:MYWindow.cls* 模块功能:自定义窗口类* 编码:lyserver* 联系方式:http://blog.youkuaiyun.com/lys
2010-03-26 20:03:00
4494
3
原创 InterlockedIncrement和InterlockedDecrement的妙用
一般来说,在多用户线程环境中,我们使用临界区、事件对象甚至互斥量来进行同步,尤其是临界区,可以很方便地对某些变量甚至代码块进行锁定执行,防止多线程之间资源恶性抢夺。既然如此,为啥微软又单独提供了专用于一个数值锁定计算的API函数InterlockedIncrement和InterlockedDecrement呢?他们又有什么特殊作用呢? 恰好近段时间写了一个这方面的应用,帮我加深了对
2010-02-04 18:17:00
2801
4
原创 如果这是梦
与你相逢就像流星划过的夜空无比灿烂却又无比短暂来去匆匆岁月如风吹散多少繁华多少的浮尘一路落红掩埋多少柔情多少痛 如果这是梦就让年年岁岁梦和梦相同如果梦会醒就让醒来依然看见你笑容如果要离开就让山山水水都为你等待直到多年后还在心底轻轻道一声珍重道珍重
2010-01-04 08:26:00
892
原创 用VB实现带图片的XP风格的按钮控件
虽然在VB里实现XP风格很简单,但是要使用XP风格同时又让按钮显示图片,则实现起来要麻烦一些,为此,我写了一个控件来实现前述功能,同时让读者可以从中了解XP主题界面的绘制过程。 使用办法很简单,在VB里新建一个工程,然后添加一个控件模块,粘贴以下代码,再将控件放置到窗口即可,当然,可别忘设置图片和文字属性,具体代码如下:* *************************
2009-12-31 19:27:00
5425
5
原创 由ActiveX DLL中的全局变量想到的...
在使用VB6编写类或控件时,有一个不如意的地方,那就是无法在属性或函数中返回结构体。一般情况下,我们可以使用一个新的类来模拟结构体,比如有一个表格类,类名为clsGrid,它包含一个行属性Rows,而Rows又包含Height等成员属性,此时,我们需要定义一个类clsRows,代码大致如下: 类clsGrid: Dim m_objRows As clsRows Pri
2009-12-15 18:24:00
1968
原创 用WINSOCK API实现同步非阻塞方式的网络通讯
前面写了基于SELECT实现的同步阻塞方式的网络通讯,本文将基于EVENT,用代码描述实现同步非阻塞方式的网络通讯。相对于同步阻塞方式来说,同步非阻塞方式可以让更好地让系统有时间处理一些其它动作,比如进度条绘制,虽然同步阻塞方式也可以,但效果比不上非阻塞的。需要明确的是,阻塞和非阻塞是指网络套接字与操作系统底层的网络缓冲区(非套接字缓冲区)之间的通讯方式,使用了EVENT方式,会自动将此方
2009-11-26 18:29:00
3628
1
原创 歌词:千年一梦
风来去匆匆关山万重不停留雨淅淅沥沥如烟如缕几许愁花枝头勃发艳如朝霞染红袖你翩翩身影盈盈笑语入梦中千年一梦只为与你相逢相逢何必曾相拥千年之后还为与你相守刹那芳华亦永久 --闲瑕时,随便哼哼,哼出了这首歌。
2009-11-17 07:43:00
1361
原创 谨慎使用IsMissing函数
在VB6中提供了一个很好用的函数叫IsMissing,可以用来判断用户是否对缺省参数赋值,比如有以下一个函数体: Public Property Get Item(Optional ByRef Index As Integer, Optional ByRef Name As String) As TDMAttachment Dim i As Long Dim
2009-11-15 15:25:00
4454
1
原创 用WINSOCK API实现同步阻塞方式的网络通讯
在VB中进行网络通讯时,一般都爱使用Winsock控件,但此控件有两点缺点,一是需要一个窗口(当然也可以修改vbp文件,实现无窗口加载Winsock控件),二是通讯方式为异步非阻塞的,对于某些基于应答式的协议来说,比如HTTP、POP3、SMPT等,使用阻塞方式往往要方便得多,而且代码流程也清晰得多,增强了可读性,更不用说灵活性了(比如超时设置、缓冲区设置等)。虽然网络上有一些使用API
2009-11-15 15:05:00
3970
2
原创 在VB中如何使IE窗口最大化
众所周知,IE窗口打开时是否最大化是由几个方面的因素造成的,比如最后一个IE窗口的最大化状态,或者注册表中的设置项。但有的时候,由于用户的IE窗口打开时并没有处于最大化状态,而程序设计人员又想使其处于最大化状态,一般大家都会想到一个办法,那就是Shell命令,因为该命令有一个参数值为vbMaximizedFocus,可以让被Shell命令运行的程序的窗口处于最大化状态,可惜的是,这个办法
2009-10-06 12:06:00
7842
原创 再谈用VB无窗口透明Usercontrol编写透明浮动按钮
去年曾写过一篇博文,名称叫《用VB无窗口透明Usercontrol编写透明浮动按钮》,该文有一个观点是错误的,即透明无窗口Usercontrol不支持设计时点选。其实,通过在UserControl_HitTest过程里加入HitResult = vbHitResultHit语句,就可以实现设计时的点选了,为此,修改代码如下:* ****************************
2009-09-19 20:55:00
3408
5
原创 消逝的故乡
在两天酷热之后,昨日黄昏起突然风雨大作。夜里,梦到了久违的故乡。故乡是川东一条名为长岭的小街,原本是乡政府所在地,斜卧在山岭的北坡,山岭上,满目苍翠的水竹和青冈林,林间的草丛,缀满艳红的杜鹃花,两侧的山谷里,错综的稻田犹如一块块明镜,田埂边,从生着桉树、枞树和挂满果子的桑树。我家就在小街的北头,门前一颗虬枝盘旋的黄桷树,高高地俯瞰着小街。据父亲讲,他小时候,树上曾栖息了许多白鹭。到了我小时
2009-09-08 20:33:00
1310
3
原创 VB如何读取快捷方式的目标路径
一般情况下,在VB中读取快捷方式的信息,大家首先考虑的是使用IShellLink接口,但这种方法需要下载或定义一个TLB文件,相对来说比较麻烦。 其实我们都知道可以使用WScript.Shell对象的CreateShortcut方法创建一个新的快捷方式,却不知道如果该快捷方式已经存在,则CreateShortcut方法将读取而不是创建快捷方式,为此,我写了一个只有两行代码的通用函
2009-08-20 20:59:00
4654
3
原创 一个通用的VB磁盘文件搜索引擎类
磁盘文件搜索是一件比较简单的事情,但很多代码写得非常繁琐,而且不支持多重路径和文件通配符,为此,我用VB写了一个通用的磁盘文件搜索引擎类,类代码如下:Option Explicit* ************************************************** ** 程序名称:FileFindEngine.bas* 程序功能:磁盘文
2009-07-31 13:38:00
5875
20
原创 用VB实现两幅图片半透明叠加
代码很简单,就不解释了,演示VB如何实现两幅图片半透明叠加的效果。Option ExplicitPrivate Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As LongPrivate Declare Function DeleteDC Lib "gdi32" (ByVal hdc
2009-07-25 17:04:00
5125
原创 VB如何使用API直接操作打印机
有时出于某种原因,我们需要使用API直接操作打印机,而不是使用Printer对象。在网上这类代码较少,而且功能也不齐全,所以写了这段代码。由于写得匆忙,且没有安装打印,因此差错在所难免,希望朋友们指正。 Option Explicit* ************************************************** ** 程序名称:Demo.ba
2009-07-14 20:12:00
8922
5
原创 用VB实现Photoshop浮动工具栏
一般来说,用子窗口实现浮动工具栏是一个不错的选择,但Photoshop真的很变态,它的工具栏窗口居然可以移出容器窗口的客户区,那么它是如何实现的呢?总结起来,Photoshop浮动工具栏具有以下两个特点: 一、像一般的子窗口一样,点击工具栏时不改变容器窗口的活动状态,且工具栏窗口终始位于容器窗口的上层。 二、但与一般的子窗口不同的是,工具栏窗口不受容器窗口客户区的限制,
2009-07-14 15:41:00
3218
6
转载 一些常用COM接口表
{00000000-0000-0000-C000-000000000046}: IUnknown{00000001-0000-0000-C000-000000000046}: IClassFactory{00000002-0000-0000-C000-000000000046}: IMalloc{00000003-0000-0000-C000-000000000046}: IMarshal{000
2009-07-14 09:01:00
3028
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人