- 博客(19)
- 资源 (10)
- 收藏
- 关注
原创 在VB的类模块中使用定时器
长久以来,由于不能直接获得VB类成员函数指针,因为无法在VB的类模块中直接使用定时器控件或定时器API,基于俺编写的获得类成员函数指针的函数,俺编写了这个带定时器功能的类,希望给朋友们一些启发。 一、新建一个类,类名称为clsTimer,类代码如下:Option Explicit* ********************************************
2009-05-31 23:31:00 7013 7
原创 一个可以改变箭头方向的气泡提示
用VB实现一个气泡提示并不难,即使是实现在任意地方显示的气泡提示。难的是,如果是采用TTF_TRACK方式允许在任意地方显示时,气泡的箭头总是向上,而且还不能自动消失。为此,我写了一个增强的气泡提示类,希望对有此需要的朋友一些参考。一、新建一个类,类名为clsTip,类代码如下:Option Explicit* ****************************
2009-05-31 01:40:00 2624 3
原创 获得VB类成员函数指针
好久没有更新博客了,先放上一个获得类成员函数指针的代码,具体解释我会在《深入了解VB变量与指针》系列文章加以说明。可能以后不会再往VB上使劲了,但我会花一段时间总结经验与大家共享。 Option Explicit* **************************************************** ** 函数名称:GetClassProcAdd
2009-05-29 20:30:00 3483 2
原创 如何用代码对Excel的指定区域实行保护
有时,我们为了保证数据的准确性,需要在对Excel工作表的指定区域进行保护,以达到禁止用户修改的目的,那么,如何用代码直接实现呢? 为此,我编写了一个简单的函数供大家调用,虽然该函数是用VBA写的,其实,大家还可以在VB里直接使用。函数说明已包含在函数代码的注释里了,具体代码如下:* *********************************************
2009-05-21 13:44:00 2289 1
原创 由DoEvents引发代码重入造成的计算错误
这是一个很常见却也很经典的DoEvents引起的计算错误。我们用VB写程序时,有时为了能够在进行计算的过程中,同时让界面输出及鼠标和键盘的输入动作不致失去响应,往往会在循环过程中使用DoEvents释放CPU资源,以加快系统对无效区的绘制和对鼠标及键盘的处理,以达到良好的人机交流效果。但是,如果不当使用DoEvents,往往会给我们带来一些麻烦。先看一个代码:Private Decla
2009-05-16 17:41:00 1776 1
原创 一个使用URLDownloadToFile实现文件下载的类
一个使用URLDownloadToFile函数和IBindStatusCallback接口编写的文件下载类,类名称为URLDownFile。在复制以下代码之前,朋友们需要先先下载Edanmo编写的一个名为olelib.tlb的类型库文件,类的具体代码如下:。Option ExplicitImplements IBindStatusCallbackPublic Event O
2009-05-16 02:21:00 5008 4
原创 为MSHFlexGrid添加表格编辑功能
虽然MSHFlexGrid的功能比较强大,样式比较丰富,可惜它不支持数据编辑。我以前俺用TextBox实现了它的编辑功能,总算弥补了MSHFlexGrid的不足。 首先,新建一个标准EXE工程,然后, 在工程部件里选择“Microsoft Hierarchical Flex Grid Control 6.0 (OLEDB)”,在Form里添加一个MSHFlexGrid控件,命名
2009-05-15 12:12:00 6763 3
原创 深入了解VB中的变量和指针(一)
前言:我们都知道,在VB中,可以使用VarPtr、StrPtr和ObjPtr来获得变量的地址,它们之间有什么区别和联系呢?许多资深的VB人员告诉我们,最好将API函数声明中ByVal lpstr As String改为ByVal lpStr As Long,这又是为什么呢?如何正确地利用这些函数向API传递指针呢? 首先,我们来了解一下VB中的变量及其定义。 也许你会说我多此一
2009-05-14 19:56:00 3377 2
原创 CSDN博客网站的两个小问题
喜欢CSDN的BBS,在这里交了许多朋友,学了不少知识。 喜欢CSDN的BLOG,毕竟这是俺第一个用心维护并打算永久维护下去的一个博客,虽然时间不长,虽然没有多少知名度。 但是CSDN博客却有两个小问题,总叫人心里不愉快,希望博客管理人员能尽快加以解决: 一是访客留言中部分字符会出现乱码,而且没有正确的结束符号。 二是文章分类中只有一级分类,不能满足
2009-05-14 14:41:00 879 4
原创 如何用VB实现Excel文件的自动合并
闲来无事,编写了一个简单而实用的合并Excel文件的函数,能够将多个XLS文件中指定数量的工作表自动合并到一个XLS文件里。当然,如果只是数据合并,则使用ADO就可以实现,但如果要保留表格格式,则恐怕只能使用俺的方法了。 一、函数代码:Option Explicit* ***************************************************
2009-05-14 02:18:00 8389 5
原创 也谈根据IE窗口句柄hWnd获得IWebBrowser接口
这几天不知乍搞的,晚上总睡不着。反正闲着没事,加之几天没更新博客了,所以写了这段代码。 关于如何根据IE窗口句柄hWnd获得IWebBrowser接口,网络上代码很多,大多是使用了MSAA里的一个函数GetObjectFromLResult进行获取,一方面,许多朋友尤其是VB爱好者对MSAA技术并不了解,另一方面,用此方法非常繁琐。我的偶象之一超级绿豆甚至在2005年的时侯使用汇
2009-05-14 01:05:00 2986 10
原创 VB实现可执行文件运行时自删除
有时,为了实现动态更新,我们需要对正处于运行状态的应用程序进行自删除,就像360安全卫士在线升级那样。但是,Windows是不允许删除正处于运行状态的应用程序的,怎么办?一般来说,我们可以使用两个程序来实现,一个专门负责版本检测和删除,一个才是业务需要的主应用程序。能不能将二者合二为一呢?答案是可以的,那就是使用BAT或VBS来进行。使用BAT,由于不能及时判断应用程序是否已经结束,于是
2009-05-07 17:49:00 3641 1
原创 在VB中利用API进行串口通信
一般来说,在VB中编写串口通讯程序,首先考虑到是使用MSComm控件,可是该控件不能设置超时,而且对许多内部的参数进行了隐藏,从而不能满足有些具体的工作。而使用API进行串口通信,大多是使用VC,很少见到完整的VB代码,为此,我编写了这个模块。 同时,由于串口通信是基于字节流的,为方便程序设计,我还编写了三个简单的辅助函数,并写了一个详细的测试代码。 如果读者有好的建议
2009-05-06 05:54:00 14852 23
转载 转贴:深入浅出之正则表达式
前言:半年前我对正则表达式产生了兴趣,在网上查找过不少资料,看过不少的教程,最后在使用一个正则表达式工具RegexBuddy时发现他的教程写的非常好,可以说是我目前见过最好的正则表达式教程。于是一直想把他翻译过来。这个愿望直到这个五一长假才得以实现,结果就有了这篇文章。关于本文的名字,使用“深入浅出”似乎已经太俗。但是通读原文以后,觉得只有用“深入浅出”才能准确的表达出该教程给我的
2009-05-04 23:16:00 927
原创 用VB实现循环队列算法
在日常代码编制时,许多人会忽略一些最基本的算法,导致代码冗余,思路不清楚。我曾经至少两次在CSDN里遇到这类问题:我想在页面的右边显示一个列表,列表长度为20,新加入一个用户后,显示在列表开头,再加入的用户,显示在这个用户的下边,当用户数量超过20后,挤掉最前面的那一位,第二位加入的用户成了第一位,依次循环,保证列表最多显示20位用户。当然,实际问题可能与此有些出入,比如Coder是想显示网友们最
2009-05-04 00:15:00 4965 10
转载 转贴:扁平表头的列表框
在通常情况下,listview的列头是按钮式的,如果你想把列头做成平面式的,那就用下面的代码: (转自:KaiDianLe.Com) Option ExplicitPrivate Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal n
2009-05-03 18:08:00 1041 3
原创 用VB使用花式画笔实现流动的选取框
创建一个选取框并不难,可以用DrawFocusRect、FrameRgn等API来实现,但要实现一个类似于PS的流动的选取框,相对来说不是一件简单的事。有的朋友干脆使用了若干位图来模拟,但这样做有一个缺点,即二次选择时,由于FrameRgn对NotXor绘图模式无效,从而导致无法轻易地擦除选取框。当然,可以事先将窗口画面保存在内存中,在需要擦除选取框时,再恢复内存中的画面。有没有比这更方便
2009-05-02 17:41:00 1765
原创 用API控制输入法状态
在VB中,某些控件具有输入焦点,却没有IMEMode属性,比如RichTextBox,为了方便在这些控件中控制输入法状态,俺编写了这个函数,代码如下:Option Explicit* ************************************************************** ** 程序名称:modIME.bas* 程序功能
2009-05-02 12:53:00 4911
转载 转贴:利用VB远线程注入技术实现键盘拦截的例子(无DLL)
这是一个从网上搜集到的VB代码,用EXE方式实现了远程注入,不过在反病毒软件的保护下,有可能导致注入失败。转贴这个代码,仅供大家学习和参考。 一、窗口代码:Option ExplicitPrivate Sub cmdLock_Click() If LockKeyboard(True) Then cmdLock.Enabled = False
2009-05-01 08:47:00 1707 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人