VB函数指针的应用(源码)

chenhui530 2010-07-15 10:39:13
加精
昨晚发了 “大事件,大事件,VB爱好者们都进来”http://topic.csdn.net/u/20100714/21/2EB7710E-A691-482B-8F43-0B2268283CF8.html反映很不错,看来大家对于vb的爱好不减,我也深深感动中,但是很多朋友都要求有测试程序,但是由于我最近忙,时间也不多,就稍微整理了下给大家把代码及测试程序发出来,希望有心人能把它封装好造福广大VB爱好者,让VB也疯狂起来,让我们大家继续挖掘vb无限的潜力。由于时间问题,代码注释不是很详细,望大家见谅,我也废话不说了,就贴代码吧!

form:

VERSION 5.00
Begin VB.Form frmMain
Caption = "Hook 测试"
ClientHeight = 3030
ClientLeft = 120
ClientTop = 450
ClientWidth = 4560
LinkTopic = "Form1"
ScaleHeight = 3030
ScaleWidth = 4560
StartUpPosition = 3 '窗口缺省
End
Attribute VB_Name = "frmMain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit



Private Sub Form_Load()
Dim dwFunAddress As Long
Dim dwProxyFunAddress As Long
Dim dwProxyFunAddress1 As Long

If InitHook Then
HookDllFunctionCall 'Hook DllFunctionCall好实现函数指针功能

Call HookApi("kernel32.dll", "DeleteFileA", AddressOf DeleteFileACallback, glpdwFunAddresses, glpdwFunNames) 'Hook DeleteFileA
Call HookApi("kernel32.dll", "DeleteFileW", AddressOf DeleteFileWCallback, glpdwFunAddresses + 4, glpdwFunNames + 128) 'Hook DeleteFileW
'
CopyMemory ByVal VarPtr(dwProxyFunAddress), ByVal glpdwFunAddresses, 4
CopyMemory ByVal VarPtr(dwProxyFunAddress1), ByVal glpdwFunAddresses + 4, 4
'MsgBox "代理函数地址:" & Hex(dwProxyFunAddress) & vbNewLine & Hex(dwProxyFunAddress1)

' KillFile StrPtr("C:\123.txt")
'
RemoveHookApi "kernel32.dll", "DeleteFileA", dwProxyFunAddress

RemoveHookApi "kernel32.dll", "DeleteFileW", dwProxyFunAddress1

UnhookDllFunctionCall
' KillFile StrPtr("C:\123.txt")

' KillFileA "C:\123.txt"
End If

End Sub


module:
Attribute VB_Name = "modHookInfo"

Private Const PAGE_NOACCESS = 1
Private Const PAGE_READONLY = 2
Private Const PAGE_READWRITE = 4
Private Const PAGE_WRITECOPY = &H8
Private Const PAGE_EXECUTE = &H10
Private Const PAGE_EXECUTE_READ = &H20
Private Const PAGE_EXECUTE_READWRITE = &H40
Private Const PAGE_EXECUTE_WRITECOPY = &H80
Private Const PAGE_GUARD = &H100
Private Const PAGE_NOCACHE = &H200
Private Const PAGE_WRITECOMBINE = &H400
Private Const MEM_COMMIT = &H1000
Private Const MEM_RELEASE = &H8000&

Public Declare Function DeleteFileW Lib "msvbvm60.dll" (ByVal lpszFileName As Long) As Long
Public Declare Function DeleteFileA Lib "msvbvm60.dll" (ByVal lpszFileName As Long) As Long
Public Declare Function ZwDeleteFile Lib "ntdll.dll" (ByVal lpszFileName As Long) As Long
Public Declare Function DbgBreakPoint Lib "ntdll.dll" () As Long
Public Declare Function KillFile Lib "kernel32" Alias "DeleteFileW" (ByVal lpszFileName As Long) As Long
Public Declare Function KillFileA Lib "kernel32" Alias "DeleteFileA" (ByVal lpszFileName As String) As Long
Public Declare Function MessageBox Lib "user32" Alias "MessageBoxW" (ByVal hWnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
Private Declare Function VirtualProtect Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal flNewProtect As Long, lpflOldProtect As Long) As Long
Private Declare Function VirtualFree Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long
Private Declare Function VirtualAlloc Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)



Public mszmsvbvm60 As String
Public glpdwFunAddresses As Long
Public glpdwFunNames As Long
Public glpHookFunCount As Long
Public glpdwDllFunCallProxyAddress As Long
Public gbytDllFunCallOldCode(0 To 5) As Byte


Public Function MessageBoxWCallback(ByVal hWnd As Long, ByVal lpText As Long, ByVal lpCaption As Long, ByVal wType As Long) As Long
MessageBoxWCallback = CallWindowProc(glpProxyFunAddress, hWnd, StrPtr("我改的值"), lpCaption, wType)
End Function

'DeleteFileW的处理函数
Public Function DeleteFileWCallback(ByVal lpszFileName As Long) As Long
If lstrcmpiW(lpszFileName, StrPtr("C:\234.txt")) = 0 Then
'如果检测是删除"C:\234.txt"我们就拒绝
DeleteFileWCallback = 0
Exit Function
ElseIf lstrcmpiW(lpszFileName, StrPtr("C:\123.txt")) = 0 Then
'如果删除的文件是C:\123.txt我们就让其删除C:\345.txt
DeleteFileWCallback = DeleteFileW(StrPtr("C:\345.txt"))
Exit Function
End If
DeleteFileWCallback = DeleteFileW(lpszFileName)
End Function

'DeleteFileA的处理函数
Public Function DeleteFileACallback(ByVal lpszFileName As Long) As Long
DeleteFileACallback = DeleteFileA(lpszFileName) '使用函数指针来调用原函数的功能,不然象以前就需要先恢复钩子再执行api函数DeleteFileA然后再挂钩,效率非常差也存在不安全的因素
End Function


'这段ShellCode函数反汇编码如下
'00540000 55 push ebp
'00540001 8bec mov ebp,esp
'00540003 83ec08 sub esp,8
'00540006 8b4508 mov eax,dword ptr [ebp+8]
'00540009 53 push ebx
'0054000a 56 push esi
'0054000b 8b3530504000 mov esi,dword ptr [HookInfo+0x5030 (00405030)]
'00540011 8b08 mov ecx,dword ptr [eax]
'00540013 8b4004 mov eax,dword ptr [eax+4]
'00540016 57 push edi
'00540017 8b3d2c504000 mov edi,dword ptr [HookInfo+0x502c (0040502c)]
'0054001d 681c3f2300 push 233F1Ch
'00540022 51 push ecx
'00540023 c745f800000000 mov dword ptr [ebp-8],0
'0054002a 8d9e00200000 lea ebx,[esi+2000h]
'00540030 8945fc mov dword ptr [ebp-4],eax
'00540033 b828a8f576 mov eax,offset ntdll!stricmp (76f5a828)
'00540038 ffd0 call eax '对比是不是msvbvm60.dll
'0054003a 83c408 add esp,8
'0054003d 85c0 test eax,eax
'0054003f 753e jne 0054007f
'00540041 8b4dfc mov ecx,dword ptr [ebp-4]
'00540044 51 push ecx
'00540045 56 push esi
'00540046 b828a8f576 mov eax,offset ntdll!stricmp (76f5a828)
'0054004b ffd0 call eax '对比是不是我们表内的函数
'0054004d 83c408 add esp,8
'00540050 85c0 test eax,eax
'00540052 7420 je 00540074 '如果是就取其对应函数地址
'00540054 81c680000000 add esi,80h '开始循环检测,名称表是 每次128个字节的增长
'0054005a 83c704 add edi,4 '地址表是每次4个单位的增长
'0054005d 3bf3 cmp esi,ebx
'0054005f 731e jae 0054007f '当超出检测就证明目标函数不是我们表内的函数就调用原函数获取函数地址
'00540061 8b55fc mov edx,dword ptr [ebp-4]
'00540064 52 push edx
'00540065 56 push esi
'00540066 b828a8f576 mov eax,offset ntdll!stricmp (76f5a828)
'0054006b ffd0 call eax '对比是不是我们表内的函数
'0054006d 83c408 add esp,8
'00540070 85c0 test eax,eax
'00540072 75e0 jne 00540054
'00540074 8b07 mov eax,dword ptr [edi] '获取对应函数的地址,这个地址是地址表维护的
'00540076 5f pop edi
'00540077 5e pop esi
'00540078 5b pop ebx
'00540079 8be5 mov esp,ebp
'0054007b 5d pop ebp
'0054007c c20400 ret 4
'0054007f ff7508 push dword ptr [ebp+8]
'00540082 b800025400 mov eax,540200h
'00540087 ffd0 call eax '执行原函数
'00540089 8945f8 mov dword ptr [ebp-8],eax
'0054008c 8b45f8 mov eax,dword ptr [ebp-8]
'0054008f 5f pop edi
'00540090 5e pop esi
'00540091 5b pop ebx
'00540092 8be5 mov esp,ebp
'00540094 5d pop ebp
'00540095 c20400 ret 4


'调用原始函数的,代理函数。用于获取原函数的执行结果
'00540200 55 push ebp
'00540201 8bec mov ebp,esp
'00540203 83ec0c sub esp,0Ch '执行原函数头部覆盖的几个字节代码
'*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Windows\system32\MSVBVM60.DLL -
'00540206 b8fda09472 mov eax,offset MSVBVM60!DllFunctionCall (7294a0fd)
'0054020b 83c006 add eax,6
'0054020e ffe0 jmp eax '然后执行到原函数的第六个字节的地方,因为上面我们已经执行了原函数开始的六个字节代码
...全文
2758 130 打赏 收藏 转发到动态 举报
写回复
用AI写文章
130 条回复
切换为时间正序
请发表友善的回复…
发表回复
王二.麻子 2011-04-26
  • 打赏
  • 举报
回复
全局hook也在这个基础上呀。全局比这个多出来获取其他dll内存读写权限,确定需要hook的位置这2个步骤,后面一样是写入其他dll空间插入jmp代码。

就想老马说的,自己弄汇编,shellcode解决参数入栈也应该可以实现函数指针,这个封装就简单了很多步骤。

我其实是来留记号的
nanfei01055 2010-11-15
  • 打赏
  • 举报
回复
这个如何实现全局Hook,看样子还只是Hook了VB进程内的函数Hook,怎么实现全局的,VB进程内部很容易实现的。
嗷嗷叫的老马 2010-08-02
  • 打赏
  • 举报
回复
[Quote=引用 124 楼 vbadvisor 的回复:]
看看这个"Hook Win32 API Functions: includes a sample of customizing VB DTPicker by hooking GetLocaleInfo",如果不能证明是Hook API function,请不要骂我。
http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=31105&lngWId=1[/Quote]
我说下我的理解:

其实这份代码并不是为了说明一种HOOK API的方法.

而是利用HOOK API,进行类似函数指针的应用.

比如,你现在有一个DLL,里面已知一个地址是某个函数的入口,但是并未导出,这时想调用的话,得loadlibrary后再callwindowproc或自己写Shell Code,解决参数入栈,才行.

而现在这个代码,可以使用一套比较通用的方式完成这一套,并且由于不用管参数入栈,方便了.

对于会写Shell Code的人来说,自己压个栈当然不是什么问题,只是,麻烦不?

所以我觉得,这个代码就是给懒人用的,哈哈.
zzyong00 2010-08-01
  • 打赏
  • 举报
回复
又是shellcode..........
膜拜
chenhui530 2010-08-01
  • 打赏
  • 举报
回复
[Quote=引用 124 楼 vbadvisor 的回复:]
引用 87 楼 chenhui530 的回复:

引用 85 楼 vbadvisor 的回复:
引用 84 楼 chenhui530 的回复:

引用 83 楼 vbadvisor 的回复:
引用 81 楼 chenhui530 的回复:

用人实现了?给我地址看看

看看这个"Hook Win32 API Functions: includes a sample of cus……
[/Quote]

这个是输入表hook,并没有实现函数指针的功能
VBAdvisor 2010-08-01
  • 打赏
  • 举报
回复
[Quote=引用 87 楼 chenhui530 的回复:]

引用 85 楼 vbadvisor 的回复:
引用 84 楼 chenhui530 的回复:

引用 83 楼 vbadvisor 的回复:
引用 81 楼 chenhui530 的回复:

用人实现了?给我地址看看
[/Quote]
看看这个"Hook Win32 API Functions: includes a sample of customizing VB DTPicker by hooking GetLocaleInfo",如果不能证明是Hook API function,请不要骂我。
http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=31105&lngWId=1

Simon217 2010-07-31
  • 打赏
  • 举报
回复
原来还可以这样。。。
Gujianda 2010-07-31
  • 打赏
  • 举报
回复
抱歉!问错了,是我的错,模块里的代码没有贴全。
Gujianda 2010-07-31
  • 打赏
  • 举报
回复
InitHook 这个波尔变量在哪定义了?
myjisgreat 2010-07-30
  • 打赏
  • 举报
回复
太强大了
shishusheng1010 2010-07-28
  • 打赏
  • 举报
回复
学习了
嗷嗷叫的老马 2010-07-28
  • 打赏
  • 举报
回复
http://www.m5home.com/bbs/thread-3965-1-1.html

已经更新,可以在IDE里调试了
xuliu 2010-07-27
  • 打赏
  • 举报
回复
先顶下,在学VBA,这个对我来说可能难了点,不过非常感谢,将来可能用到
hllsoul 2010-07-27
  • 打赏
  • 举报
回复
挣个分下东西
shangxiaoxiang 2010-07-27
  • 打赏
  • 举报
回复
不错。。。。
xh_linyu_0324 2010-07-26
  • 打赏
  • 举报
回复
royallyliyuan 2010-07-26
  • 打赏
  • 举报
回复
写得太有深意了!
lyingbo 2010-07-26
  • 打赏
  • 举报
回复
学习下了
sky0036 2010-07-26
  • 打赏
  • 举报
回复
anypsky 2010-07-25
  • 打赏
  • 举报
回复
果然博大精深!
加载更多回复(101)
556,delay1.zip 源码设计中的延时功能(1KB)557,type_1.zip 趣味打字2.1(233KB)558,test1.zip asp编写动态网页计数器(1KB)559,hztosm.zip 汉字转声母完全源代码(90KB)560,formatfloppy.zip 格式化软盘源代码(13KB)561,freespace.zip 获取磁盘剩余空间(3KB)562,setscreen 设置屏幕分辨率(7KB)563,snapwindow.zip 一个抓图的小程序(14KB)564,hotrgn.zip 热区的应用(6KB)565,getserial.zip 读出驱动器序列号,可以制作加密安装盘(2KB)566,opencdrom.zip 可以程序控制打开或关闭CDROM,非常方便(2KB)567,getusername.zip 自动读取用户登陆名称,再进行密码验证(2KB)568,gethostname.zip 读取机器名称(2KB)569,printpic.zip 解决图形打印的问题(50KB)570,g029_pcl.zip拼图游戏(56KB)571,g028_octopus.zip一个简单的掌上游戏机的游戏,这个游戏机的内容是要逃过大章鱼的捕捉(408KB)572,g027_menace.zip仓库世家-推箱子的游戏(114KB)573,g026_breKthru.zip弹珠台游戏(41KB)574,g025_zhq.zip一个能考考你的智慧的智慧棋(17KB)575,g024_vb-sol.zipVB 的扑克牌游戏的源码(15KB)576,g023_picgame.zip一个好玩的拼图游戏(25KB)577,g021_zm015看着超级玛莉不停的追赶着你的鼠标,是不是很有意思呢?(25KB)578,g020_zm019一个拼图游戏,可以自己指定图片进行游戏(12KB)579,g019_zm011一个网络五子棋的源程序(并有聊天功能)(41KB)580,g018_zm010.zip中国象棋的源程序,支持网络作战(23KB)581,g0173维的breaKthrough游戏(8KB)582,g016.zip小蜜蜂射击游戏源程序, 不仅演示了 vb 的图形操作技巧,键盘操作,还演示了怎样使用 npmod32.dll(已包含,免费) 来播mod,s3m,mpp,med,xm,it,mdz,itz,xmz,s3z 等音乐格式文件(208KB)583,g015.zip旋转俄罗斯 1.0 demo 版的源程序,vb5 版存贮,稍加修改即适合于 vb4、vb3。里面有用 vb 处理俄罗斯方块的核心内容及简单注释(8KB)584,g014.zipbreakthrough游戏(保持小球在屏幕上跳动)源程序(50KB)585,g013.zip3维迷宫游戏的源程序(40KB)586,g012.zip射击(导弹)游戏的源程序(5KB)587,g011.zip生命游戏源程序(12KB)588,g010.zip一个精灵游戏源程序(33KB)589,g009.zip翻转棋游戏(64子, 每子正反面分别为黑白两色, 两人对弈)的源程序(29)590,g008.zip纸牌游戏源程序(45KB)591,g007.zip太空船游戏例子源程序(48KB)592,g006.zip用白雪做背面的俄罗斯方块(1.0版),自带EXE(224KB)593,g005.zip个人娱乐游戏,自带EXE(25KB)594,g004.zip个个人自娱乐的扑克牌游戏(57KB)595,g003.zip代表和平的娱乐游戏,自带EXE(12KB)596,g002.zip一个迷宫游戏,还有地图编辑器呢,完全源码(230KB)597,g001.zip模仿windows中的扫雷,自带EXE(38KB)
556,delay1.zip
源码设计中的延时功能(1KB)
557,type_1.zip
趣味打字2.1(233KB)
558,test1.zip
asp编写动态网页计数器(1KB)
559,hztosm.zip
汉字转声母完全源代码(90KB)
560,formatfloppy.zip
格式化软盘源代码(13KB)
561,freespace.zip
获取磁盘剩余空间(3KB)
562,setscreen
设置屏幕分辨率(7KB)
563,snapwindow.zip
一个抓图的小程序(14KB)
564,hotrgn.zip
热区的应用(6KB)
565,getserial.zip
读出驱动器序列号,可以制作加密安装盘(2KB)
566,opencdrom.zip
可以程序控制打开或关闭CDROM,非常方便(2KB)
567,getusername.zip
自动读取用户登陆名称,再进行密码验证(2KB)
568,gethostname.zip
读取机器名称(2KB)
569,printpic.zip
解决图形打印的问题(50KB)
570,g029_pcl.zip
拼图游戏(56KB)
571,g028_octopus.zip
一个简单的掌上游戏机的游戏,这个游戏机的内容是要逃过大章鱼的捕捉(408KB)
572,g027_menace.zip
仓库世家-推箱子的游戏(114KB)
573,g026_breKthru.zip
弹珠台游戏(41KB)
574,g025_zhq.zip
一个能考考你的智慧的智慧棋(17KB)
575,g024_vb-sol.zip
VB 的扑克牌游戏的源码(15KB)
576,g023_picgame.zip
一个好玩的拼图游戏(25KB)
577,g021_zm015
看着超级玛莉不停的追赶着你的鼠标,是不是很有意思呢?(25KB)
578,g020_zm019
一个拼图游戏,可以自己指定图片进行游戏(12KB)
579,g019_zm011
一个网络五子棋的源程序(并有聊天功能)(41KB)
580,g018_zm010.zip
中国象棋的源程序,支持网络作战(23KB)
581,g017
3维的breaKthrough游戏(8KB)
582,g016.zip
小蜜蜂射击游戏源程序, 不仅演示了 vb 的图形操作技巧,键盘操作,还演示了怎样使用 npmod32.dll(已包含,免费) 来播mod,s3m,mpp,med,xm,it,mdz,itz,xmz,s3z 等音乐格式文件(208KB)
583,g015.zip
旋转俄罗斯 1.0 demo 版的源程序,vb5 版存贮,稍加修改即适合于 vb4、vb3。里面有用 vb 处理俄罗斯方块的核心内容及简单注释(8KB)
584,g014.zip
breakthrough游戏(保持小球在屏幕上跳动)源程序(50KB)
585,g013.zip
3维迷宫游戏的源程序(40KB)
586,g012.zip
射击(导弹)游戏的源程序(5KB)
587,g011.zip
生命游戏源程序(12KB)
588,g010.zip
一个精灵游戏源程序(33KB)
589,g009.zip
翻转棋游戏(64子, 每子正反面分别为黑白两色, 两人对弈)的源程序(29)
590,g008.zip
纸牌游戏源程序(45KB)
591,g007.zip
太空船游戏例子源程序(48KB)
592,g006.zip
用白雪做背面的俄罗斯方块(1.0版),自带EXE(224KB)
593,g005.zip
个人娱乐游戏,自带EXE(25KB)
594,g004.zip
个个人自娱乐的扑克牌游戏(57KB)
595,g003.zip
代表和平的娱乐游戏,自带EXE(12KB)
596,g002.zip
一个迷宫游戏,还有地图编辑器呢,完全源码(230KB)
597,g001.zip
模仿windows中的扫雷,自带EXE(38KB)
598,p012_prtDB.zip
打印数据库表格(39KB)
599,p011_dbprint.zip
数据库打印的例子(7KB)
600,p010_print.zip
一个调用打印机的VB程序范例(8KB)
601,p009_vbSimple35.zip
打印预览(21KB)
602,p008_prview32.zip
VB中用OLE服务实现打印预览的功能(87KB)
603,p007_prnprv3.zip
如何使用VB实现打印预览(32KB)
604,p006_prnView.zip
打印模拟(13KB)
605,p005_vbTip10.zip
避免 Print 时印出 空白的前置字元(2KB)
606,p004_spool.zip
发送脱机打印任务(5KB)
607,p003_orient.zip
改变缺省的打印方向(3KB)
608,p002.zip
VB5/6中增加打印预览功能(78KB)
609,p001.zip
简单的打印文件的例子(5KB)
610,o046_4.zip
识别常数的简单四则运算(3KB)'
611,o045_dhsz.zip
象钟面一样有时针、分针和秒针(3KB)
612,o044_zm045.zip
一个非常酷的机器人的源程序,你可以自己制作你喜欢的机器人并保存起来,很有意思哦(137KB)
613,o043_004101102.zip
TreeView的基本操作(5KB)
614,o042.zip
一个比较完整的源代码
615,o041_waker.zip
定时提醒 1.0 (12KB)
616,o040_zm035.zip
彻底清除“I Love You”病毒并介绍了病毒的原理及特征。Cool(32KB)
617,o039_72.zip
鼠标计程器(23KB)
618,o038_love.zip
情书生成器源代码(161KB)
619,o037_shellex5.zip
能打开默认的文件夹和默认的网站(7KB)
620,o035_shchangenotify.zip
未公开的COOL函数据(12KB)
621,o034_rotfont.zip
VB实现字体的旋转
622,o033_998162026.zip
制作安装程序常用的模块(2KB)
623,o032_play024.zip
对电子爱好者是一个不错的选择(7KB)
624,o031_Play39.zip
时间、空间大小等数据向字符串的很有用的转换(4KB)
625,o029_snow.zip
一个雪花飘落例子(3KB)
626,o028_zoomsys.zip
类似画图放大镜的东西(2KB)
627,o027_wiz2.zip
制作应用程序向导的例子(类似安装程序的界面)!(5KB)
628,o025_StopWatch.zip
“跑表”类 ,VB 提供的 Timer 控件的精度好象可以达到 1 毫秒,但实际上只能达到几十毫秒。此“跑表”类使用多媒体的定时器而真正提供精确到 1 毫秒的定时(1KB)
629,o024_timer.zip
这是一个VB6编写的数码钟(4KB)
630,o023_clock.zip
指针式的时钟(3KB)
631,o021_viewpw.zip
密码查看器(7KB)
632,o020_calendar.zip
一个小小的日历程序(4KB)
633,o019_getword.zip
读取鼠标所在位置的单词(5KB)
634,o018_up.zip
数字大写转换程序(8KB)
635,o017_zm020.zip
利用这个程序可以让你方便的管理你所收集的源程序,VBCODE网站50几周来排行第一的源程序。强烈推荐! (200KB)
636,o016.zip
演示银河系的例子 (28KB)
637,o015.zip
计数器(10KB)
638,o014.zip
文件加密/解密的例子 (345KB)
639,o013.zip
将十亿以内的数字转换成文本文字(4KB)
640,o012.zip
十进制数转换成罗马数字(1KB)
641,o011.zip
16进制数转换成十进制, 16进制转换成二进制等(1KB)
642,o010.zip
转换二进制数为16进制数(1KB)
643,o009.zip
指定两个日期, 计算相隔的天数(2KB)
644,o008.zip
非常COOL的文字效果(9KB)
645,o007.zip
Ceaser转换文本加密技术,由Julius Ceaser提出 COOL(7KB)
646,o006.zip
允许你让EXE文件在用户第一次使用时输入用户名和序列号, 并将信息存储在EXE文件中(5KB)
647,o005.zip
简单的例子(4KB)
648,o004.zip
加密/解密字符串的例子(9KB)
649,o003.zip
密码存储程序(2KB)
650,o002.zip
VB做的CGI程序,演示了如何做一个网上的电子交易系统(91KB)
651,vbNumerical11.htm
Least-Squares curve fitting by using an arbitrary order polynomial as approximating function.(11KB)
652,vbNumerical12.htm
Matrix Inversion by Gauss-Jordan Elimination with maximization of pivot elements.(12KB)
653,vbNumerical13.htm
Least-Squares curve fitting with statistical analysis by using an arbitrary order polynomial (17KB)
654,vbNumerical14.htm
valuate an integral by using Romberg integration. (9KB)
655,vbNumerical15.htm
Solve the matrix eigenvalue problem by using Hotelling's deflation method.(15KB)
656,vbNumerical16.htm
Solve the integral of discrete evenly and unevenly spaced points by using trapezoidal or Simpson's rule. (13KB)
657,vbNumerical17.htm
Evaluate the determinant of a square matrix by using Gauss Elimination with maximization
of pivot elements.(7KB)
658,vbNumerical18.htm
Solve a set of simultaneous linear equations including determinant calculation by Gauss-Jordan
Elimination with maximization of pivot elements.(5KB)
659,vbNumerical19.htm
Solve a set of simultaneous linear equations including determinant calculation by Gauss Elimination
with maximization of pivot elements.(5KB)
660,vbNumerical20.htm
Matrix Inversion including determinant calculation by Gauss-Jordan Elimination with
maximization of pivot elements.(5KB)
661,prnprv3.zip
vb5/6中增加打印预览功能(78KB)
662,vbprint.zip
vb中使用打印功能的add-in(764KB)
663,spool.zip
打印文件的例子(5KB)
664,versioninfo.zip
从dll或exe文件中获得版本信息(3KB)
665,shellwait.zip
在程序中运行另一个exe程序直到它运行结束(1KB)
666,unloadforms.zip
卸装所有的forms(1KB)
667,startfile.zip
在程序中运行另一个exe程序(6KB)
668,killapp.zip
终止另一个程序(3KB)
669,jdsaver.zip
一个简单的屏幕保护程序(13KB)
670,ssaver.zip
在屏幕上卷滚文字的屏幕保护程序 (8KB)
671,scrsaver.zip
一个简单的屏幕保护程序(5KB)
672,scrnsavr.zip
两个屏幕保护程序(39KB)
673,saver.zip
一个简单的屏幕保护程序(7KB)
674,crypt.zip
密码存储程序(2KB)
675,enigma.zip
一个德国的enigma加密技术例子 cool(10KB)
676,ceaser.zip
ceaser转换文本加密技术,由julius ceaser提出 cool(7KB)
677,registry.zip
读和写注册表文件的例子(7KB)
678,xcopy.zip
模仿dos命令xcopy的功能(3KB)
679,winpaths.zip
得到计算机上windows目录和系统目录(3KB)
680,tray.zip
实现托盘程序(9KB)
681,drvspace.zip
显示磁盘的剩余空间(2KB)
682,keycheck.zip
键盘检测程序(5KB)
683, getdrives.zip
得到驱动器的详细资料(7KB)
684,getcompname.zip
得到计算机名称(2KB)
685,systeminfo.zip
显示详细的系统资料(11KB)
686,watchdir.zip
监控一个指定的目录, 当这个目录有文件删除或有文件增加, 监控程序将显示相关信息(4KB)
687,turnoff.zip
关机/重启动的程序(20KB)
688,controlpanel.zip
访问控制面板的方法(2KB)
689,screenres.zip
得到计算机屏幕的大小(2KB)
690,editregistry.zip
编辑注册表 (2KB)
691,stop.zip
锁定计算机的程序(5KB)
692,wbasket.zip
将文件移动到垃圾箱中(2KB)
693,opsys.zip
得到操作系统的信息(12KB)
694,ctaskmanager.zip
windows任务管理程序(12KB)
695,cntrlpnl.zip
访问控制面板(12KB)
696,copyscr.zip
拷贝屏幕到picture box(2KB)
697, registryb.zip
读注册表信息(5KB)
698,registry5.zip
读/写注册表(10KB)
699,hideshowtaskbar.zip
显示/隐藏任务条(3KB)
700,taskhide.zip
隐藏一个任务(2KB)
701,clipcurs.zip
限制鼠标的区域(3KB)
702, kidnap.zip
捆绑程序(8KB)
703,netuse.zip
演示连接/断开network(3KB)
704,winntsecurity.zip
关于windows nt安全性的程序(6KB)
705,code_format_disk.zip
格式化磁盘的例子(8KB)
706,01ss1632.zip
创建一个屏幕保护程序所用到的ole dll和使用例子(263KB)
707,cpocket.zip
统托盘(tray)控件(691KB)
708,tskvb4.zip
一个系统托盘(tray)例子(13KB)
709,scrnres.zip
使用windows api得到屏幕的大小(3KB)
710,taskswth.zip
调用api实现任务转换和得到当前活动任务名称(4KB)
711,vbhlp32.zip
vb helper:一个写帮助文件的dll(31KB)
712,loads.zip
将动态连接库预先装入内存以提高程序的运行速度(35KB)
713, toolsdll.zip
一个提供磁盘功能动态库, 包括确认文件是否存在, 磁盘空间等功能(132KB)
714,vbfindid.zip
找到窗口或控制的id及类信息(9KB)
715,rbbwin11.zip
在basic中执行一些特殊的指令(如重启计算机等)(1230KB)
716,drivetyp.zip
监测用户安装了何种类型的驱动器,包括"软驱","硬盘","cd-rom","网络驱动器"等(3KB)
717, inout.zip
如何在vb中调用i/o口的例子(10KB)
718,mouseleavetest.zip
vb中定义了mousemove事件,但不能捕捉mouseleave事件,此程序交你如何捕捉mouseleave事件(8KB)
719,progman.zip
制作安装程序必备,此模块包含的sub及function能帮你做出专业的安装程序(2KB)
720,windows5.zip
如何得到当前windows的版本号(7KB)
721,group.zip
读取 win95 组的三种方法及组中建快捷键(15KB)
722,shutdown.zip
模拟关机程序, 作者:小乐(mailto:xiaole@telekbird.com.cn)(6KB)
723,associate.zip
建立文件关联, 例子演示把 .bar 文件与 notepad 建立关联(2KB)
724,磁盘空间.zip
磁盘使用情况(3KB)
725,bwindowontop.zip
使窗口显示在最前面的例子(1KB)
726,richtext.zip
编辑rtf文件的程序, 需要active threed control(30KB)
727,rtf.zip
演示rtf控制的功能(16KB)
728,mdi-temp.zip
实现多文档界面的记事本, 需要active threed control(29KB)
729,textedit.zip
类似记事本的简单文本编辑器(9KB)
730,toupper.zip
在textbox中输入大写文本(2KB)
731,wordover.zip
鼠标移动到richtext box中时查看单词(3KB)
732,editmenu.zip
在richtext box中增加右击菜单(5KB)
733,xmsnotepad.zip
xms记事本(23KB)
734,textefx.zip
非常cool的文字效果(9KB)
735,rtfprn.zip
打印richtext box中的内容(8KB)
736,lword.zip
一个简单的单词处理程序(46KB)
737,rotfont.zip
vb中的字都是水平的,可否想过作出有角度的字,在这里演示了作旋转的字的方法(4KB)
738,txtsrch.zip
在text中实现快速增量查询(4KB)
739,alphanumsortdll.zip
按字母和数字排序的例子(1527KB)
740,ccdemo.zip
演示调用windows的颜色对话框(258KB)
741,cfdemo.zip
演示调用windows的字体对话框(281KB)
742,reg221.zip
注册使用ocx的例子(51KB)
743,ropdemo.zip
演示windows api的光栅操作(277KB)
744, jkcgi.zip
使用dll创建cgi程序(181KB)
745,fsextext.zip
显示多种函数效果的例子(228KB)
746,shfileop.zip
显示win95 api的一些函数(4KB)
747,iconextr.zip
从动态库, 执行文件或ico文件中读取图标(3KB)
748,virtlogo.zip
显示logo的例子(8KB)
749,calendar.zip
日历程序(13KB)
750,aboutbox.zip
windows关于窗口(1KB)
751,vblib.zip
装入不同的form(44KB)
752,vbio32.zip
问端口的程序(17KB)
753,countdown.zip
计数器(10KB)
754,galaxy.zip
演示银河系的例子(28KB)
755,rocket.zip
小图形的快速移动(9KB)
756,hlitactx.zip
加亮鼠标所在的区域(4KB)
757,appbar4.zip
模拟windows 95/98的任务条(3KB)
758, keyboard5.zip
显示键盘信息(7KB)
759,listsrch.zip
在列表框中快速查找和定位子项(7KB)
760,quiksrch.zip
在列表框或组合框中查找子项(3KB)
761,vba.zip
莱卡数据处理VBA(203KB)
762,SysMonth.zip
调用系统日历(5KB)
763,haha.zip
屏幕旋转180度(10KB)
764,undocsh.zip
未公开的Shell.dll 函数(11KB)
765,mousedemo.zip
鼠标性能演示程序(47KB)
766,winpaper.zip
墙纸定时更换器程序(70KB)
767,game.zip
游戏(57KB)
768,destroy.zip
电脑安全卫士(46KB)
769,encrypt1.zip
文本文件加密器1 (54KB)
770,card.zip
名片管理(35KB)
771,cihsafe.zip
CIH病毒免疫程序(63KB)
772,wb1-zippack.zip
密码小管家(13KB)
773,heibai.zip
黑白棋(6KB)
774,imdshtdown.zip
一个倒计时的程序,时间到则关闭系统(9KB)
775,iconproc.zip
1个图标操作的技巧,1个图标有5种显示效果(正常、无准备、选择、等等) (14KB)
776,money.zip
货币的数字到中文换算(2KB)

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧