SendMessage函数完全使用手册

SendMessage函数完全使用手册首先 我们了解一下Windows的消息机制。Windows是一个消息驱动式系 统,Windows消息提供应用程序与应用程序之间,应用程序与Windows系统之间进 行通信的手段。举个例子,打开记事本程序,该程序有一个 “文件“菜单。 那么,在运行该程序 的时候,如果用户单击“文件菜单“里的“新建“命令, 这个动作将被Windows所捕 捉,Windows经过分析得知这个动作应该由我们打开的记事本程序所来处理,然后 Windows就发送个消息 譬如我们编程的时候有时用到的 WM_COMMAND的消息给记 事本,然后记事本就把这个消息处理掉。 这个过程就...
2008-05-21 08:34 | 阅读 7060 次 | 评论 0 条

[VB]ListView控件小技巧

1. 让ListView失去焦点的时候,选中行依然高亮显示 方法: 代码中加入 ListView1.HideSelection = False 或者在其属性中设置 虽然失去焦点后,选中行变成灰色的,但是和其它的行还是有区别的 2. 调整ListView每行的间距 方法: 添加一个ImageList控件,然后在ImageList控件里面随便添加一副图片,图片的高度必须是你想设置的行高,然后设置ListView的SmallIcons 为 ImageList控件 (ListView1.SmallIcons = ImageList1) 曲线救国,虽然麻烦了点,但还是可以实现的,个人觉得...
2008-05-18 16:51 | 阅读 15302 次 | 评论 1 条

[VB]如何在RichTextBox中实现Undo功能

SendMessage函数在RichTextBox中实现:一、一次撤销功能二、无限地撤销功能生活中的What's done cannot be undone在我们的程序中应该改为What's done can always be undone。你不相信?那么请看——如果仅仅象MS的小记事本那样只有一次undo功能,那不是一件麻烦事,用SendMessage函数就可以轻松实现。下列代码能使RichTextBox有一次撤销操作的功能:Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hw...
2008-05-12 16:09 | 阅读 5251 次 | 评论 0 条

[VB]注册全局热键

一般有两种方法, RegisterHotKey 和 Hook RegisterHotKey 的方法相对比较简单,就是向Windows注册这个热键,然后就能用了 ========================以下程序未经测试=============================== 新建立一个FORM~Private Sub Form_Load()Dim ret As LongpreWinProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)ret = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf W...
2008-03-04 09:04 | 阅读 5436 次 | 评论 0 条

[vb]Winsock相关

利用Byte数组传输二进制文件 为什么在Winsock的ConnectionRequest事件中要调用Winsock1.close()? ConnectionRequest事件更好的一种处理方法 Winsock的方法属性 远程屏幕 冰河木马 用VB的WINSOCK控件发送大于8K的BMP
2008-03-03 18:21 | 阅读 2928 次 | 评论 2 条

实现程序的隐形

未测试过,不保证可行 ===============================================================================孔祥军 苏悦娟 在一些系统,为了特定目的,经常要求程序隐藏起来运行,例如DCS(集散控制系统)中的后台监控系统、木马控制程序、源码防拷贝等,以减少被发现、截杀和反汇编的风险。这种功能模块要求程序在运行期间不仅不会在桌面出现,也不允许被操作者从任务管理器列表中发现。 程序隐形的原理 对于一个隐形程序而言,最基本的要求是: 1. 不在桌面出现界面; 2. 不在任务栏出现图标; 3. 程序名从任务管理器名单中消失...
2008-01-22 10:15 | 阅读 2164 次 | 评论 0 条

LISTVIEW的排序方法

这种方法最方便,严重推荐 在点击数字列头的事件中,首先将数字变一下格式,将列的内容变为:format(列的内容,"000000000000"),再将listview控件的索引值设为TRUE,最后将列的内容改回来val(列的内容)。 '在form上加listview1控件,view值设为3,加上下面一段程序 Private Sub Form_Load() ListView1.ColumnHeaders.Add , , "Size" For i = 1 To 100 ListView1.ListItems.Add , , Int(Rnd * 1000...
2008-01-14 10:56 | 阅读 4069 次 | 评论 0 条

Stream、WshShell、WshUrlShortcut对象及Shell.Application的使用说明

1.Stream对象组件:"Adodb.Stream" 有下列方法: Cancel 方法    使用方法如下    Object.Cancel    说明:取消执行挂起的异步 Execute 或 Open 方法的调用。 Close 方法    使用方法如下    Object.Close    :关闭对像 CopyTo 方法    使用方法如下    Object.CopyTo(destStream,[CharNumber])    说明:将对像的数据复制,destStream指向要复制的对像,CharNumber为可选参数,指要复制的字节数,不选为全部复制。 Flush 方法    使...
2008-01-14 09:10 | 阅读 1374 次 | 评论 0 条

动态调用Dll(未声明的情况下)

一般VB程序调用api的时候都需要事先在程序开头,声明一下需要用到的api,下面的程序演示了一种不需要事先声明,直接调用api的方法. 不过我测试了一下,好像没成功......... Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As LongPrivate Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As LongPriva...
2008-01-08 08:52 | 阅读 3124 次 | 评论 2 条