Sendkeys 和 Sendmessage 使用技巧一例

Private Declare Function SendMessage Lib “user32.dll” Alias “SendMessageA” (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Function FindWindow Lib “user32.dll” Alias “FindWindowA” (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx Lib “user32” Alias “FindWindowExA” (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Function sqrx(ByVal x As Double) As String ‘计算平方根(比VB DOUBLE 类型精度高) Dim temp As String, i As Long, j As Long Shell “Calc.EXE”, vbMinimizedNoFocus ‘运行计算器 temp = x & “y0.5=” For i = 1 To Len(temp) SendKeys Mid(temp, i, 1), True ‘向计算器顺序发送按键消息X (X^Y) 0.5= Next temp = String(64, Chr(0)) i = FindWindow(vbNullString, “计算器”) ‘窗口句柄 j = FindWindowEx(i, ByVal 0&, “Edit”, vbNullString) ‘编辑框句柄 SendMessage j, &HD, Len(temp), ByVal temp ‘发送编辑框文本至temp SendKeys “%{F4}”, True ‘调用ALT+F4关闭计算器窗口 sqrx = temp End Function ...

2004年11月13日 · 1 分钟 · zgia

关于天文数字十进制与十六进制间的转换

对于一般的整型数字,16进制与10进制 间的转化可以用CLNG(),HEX()函数解决,但遇上天文数字,这些函数就无能为力了。下面是笔者写的几个函数,演示了天文数字计算中的一些技巧。 ...

2004年11月13日 · 2 分钟 · zgia

今天报名去了

加油!

2004年11月11日 · 1 分钟 · zgia

唉,学习真累

每天10小时 加油!努力!奋斗! 会有的 会有的 会有的

2004年11月4日 · 1 分钟 · zgia

最经典的26句话

1,记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。 2,能冲刷一切的除了眼泪,就是时间,以时间来推移感情,时间越长,冲突越淡,仿佛不断稀释的茶。 ...

2004年10月15日 · 3 分钟 · zgia

IP地址与子网掩码

一、IP地址与网络分类 (1)IP地址 我们知道,不同的物理网络技术有不同的编址方式;不同物理网络中的主机,有不同的物理网络地址。网间网技术是将不同物理网络技术统一起来的高层软件技术。网间网技术采用一种全局通用的地址格式,为全网的每一网络和每一主机都分配一个网间网地址,以此屏蔽物理网络地址的差异。 IP协议提供一种全网间网通用的地址格式,并在统一管理下进行地址分配,保证一个地址对应一台网间网主机(包括网关),这样物理地址的差异被IP层所屏蔽。IP层所用到的地址叫做网间网地址,又叫IP地址。它由网络号和主机号两部分组成,统一网络内的所有主机使用相同的网络号,主机号是唯一的。 IP地址是一个32为的二进制数,分成4个字段,每个字段8位。 (2)三类主要的网络地址 我们知道,从LAN到WAN,不同种类网络规模相差很大,必须区别对待。因此按网络规模大小,将网络地址分为主要的三类,如下: A类: 0网络号主机号 B类: 1 0网络号主机号 C类: 1 1 0网络号主机号 A类地址用于少量的(最多27个)主机数大于216的大型网,每个A类网络可容纳最多224台主机;B类地址用于主机数介于28~216之间数量不多不少的中型网,B类网络最多214个;C类地址用于每个网络只能容纳28台主机的大量小型网,C类网络最多221个。 除了以上A、B、C三个主类地址外,还有另外两类地址,如下: D类: 1 1 1 0多目地址 E类: 1 1 1 1 0留待后用 其中多目地址(multicast address)是比广播地址稍弱的多点传送地址,用于支持多目传输技术。E类地址用于将来的扩展之用。 (3)TCP/IP规定网络地址 除了一般地标识一台主机外,还有几种具有特殊意义的特殊形式。 *广播地址 TCP/IP规定,主机号全为“1”的网络地址用于广播之用,叫做广播地址。所谓广播,指同时向网上所有主机发送报文。 *有限广播 前面提到的广播地址包含一个有效的网络号和主机号,技术上称为直接广播(directed boradcasting)地址。在网间网上的任何一点均可向其他任何网络进行直接广播,但直接广播有一个缺点,就是要知道信宿网络的网络号。 有时需要在本网络内部广播,但又不知道本网络网络号。TCP/IP规定,32比特全为“1”的网间网地址用于本网广播,该地址叫做有限广播地址(limited broadcast address)。 *“0”地址 TCP/IP协议规定,各位全为“0”的网络号被解释成“本”网络。 *回送地址 A类网络地址127是一个保留地址,用于网络软件测试以及本地机进程间通信,叫做回送地址(loopback address)。无论什么程序,一旦使用回送地址发送数据,协议软件立即返回之,不进行任何网络 传输。 TCP/IP协议规定,一、含网络号127的分组不能出现在任何网络上;二、主机和网关不能为该地址广播任何寻径信息。由以上规定可以看出,主机号全“0”全“1”的地址在TCP/IP协议中有特殊含义,不能用作一台主机的有效地址。 二、子网掩码 (1)子网TCP/IP网间网技术产生于大型主流机环境中,它能发展到今天的规模是当初的设计者们始料未及的。网间网规模的迅速扩展对IP地址模式的威胁并不是它不能保证主机地址的唯一性,而是会带来两方面的负担:第一,巨大的网络地址管理开销;第二,网关寻径急剧膨胀。其中第二点尤为突出,寻径表的膨胀不仅会降低网关寻径效率(甚至可能使寻径表溢出,从而造成寻径故障),更重要的是将增加内外部路径刷新时的开销,从而加重网络负担。 因此,迫切需要寻求新的技术,以应付网间网规模增长带来的问题。仔细分析发现,网间网规模的增长在内部主要表现为网络地址的增减,因此解决问题的思路集中在:如何减少网络地址。于是IP网络 地址的多重复用技术应运而生。通过复用技术,使若干物理网络共享同一IP网络地址,无疑将减少网络地址数。 子网编址(subnet addressing)技术,又叫子网寻径(subnet routing),英文简称subnetting,是最广泛使用的IP网络地址复用方式,目前已经标准化,并成为IP地址模式的一部分。 一般的,32位的IP地址分为两部分,即网络号和主机号,我们分别把他们叫做IP地址的“网间网部分”和“本地部分”。子网编址技术将本地部分进一步划分为“物理网络”部分和“主机”部分,如图: 网间网部分物理网络主机 |←网间网部分→|←────本地部分─────→| 其中“物理网络”用于标识同一IP网络地址下的不同物理网络,既是“子网”。 (2)子网掩码IP协议标准规定:每一个使用子网的网点都选择一个32位的位模式,若位模式中的某位置1,则对应IP地址中的某位为网络地址(包括网间网部分和物理网络号)中的一位;若位模式中的 某位置0,则对应IP地址中的某位为主机地址中的一位。例如位模式: 11111111 11111111 11111111 00000000中,前三个字节全1,代表对应IP地址中最高的三个字节为网络地址;后一个字节全0,代表对应IP地址中最后的一个字节为主机地址。这种位模式叫做子网模(subnet mask)或“子网掩码”。 为了使用的方便,常常使用“点分整数表示法”来表示一个IP地址和子网掩码,例如B类地址子网掩码(11111111 11111111 11111111 00000000)为:255.255.255.0 IP协议关于子网掩码的定义提供一种有趣的灵活性,允许子网掩码中的“0”和“1”位不连续。但是,这样的子网掩码给分配主机地址和理解寻径表都带来一定困难,并且,极少的路由器支持在子网中使用低序或无序的位,因此在实际应用中通常各网点采用连续方式的子网掩码。像255.255.255.64和255.255.255.160等一类的子网掩码不推荐使用。 (3)子网掩码与IP地址 子网掩码与IP地址结合使用,可以区分出一个网络地址的网络号和主机号。 例如:有一个C类地址为: 192.9.200.13其缺省的子网掩码为: 255.255.255.0则它的网络号和主机号可按如下方法得到: ①将IP地址192.9.200.13转换为二进制11000000 00001001 11001000 00001101 ②将子网掩码255.255.255.0转换为二进制11111111 11111111 11111111 00000000 ③将两个二进制数逻辑与(AND)运算后得出的结果即为网络部分 11000000 00001001 11001000 00001101 AND 11111111 11111111 11111111 00000000 = 11000000 00001001 11001000 00000000 结果为192.9.200.0,即网络号为192.9.200.0。 ④将子网掩码取反再与IP地址逻辑与(AND)后得到的结果即为主机部分 11000000 00001001 11001000 00001101 AND 00000000 00000000 00000000 11111111 = 00000000 00000000 00000000 00001101 结果为0.0.0.13,即主机号为13。 (4)子网掩码与IP地址子网掩码与IP地址结合使用,可以区分出一个网络地址的网络号和主机号。 例如:有一个C类地址为: 192.9.200.13 其缺省的子网掩码为: 255.255.255.0 则它的网络号和主机号可按如下方法得到: ①将IP地址192.9.200.13转换为二进制11000000 00001001 11001000 00001101 ②将子网掩码255.255.255.0转换为二进制11111111 11111111 11111111 00000000 ③将两个二进制数逻辑与(AND)运算后得出的结果即为网络部分 11000000 00001001 11001000 00001101 AND 11111111 11111111 1111111100000000 = 11000000 00001001 11001000 00000000 结果为192.9.200.0,即网络号为192.9.200.0。 ④将子网掩码取反再与IP地址逻辑与(AND)后得到的结果即为主机部分 11000000 00001001 11001000 00001101 AND 00000000 00000000 00000000 11111111 = 00000000 00000000 00000000 00001101 结果为0.0.0.13,即主机号为13。 三、子网划分与实例根据以上分析,建议按以下步骤和实例定义子网掩码。 1、将要划分的子网数目转换为2的m次方。如要分8个子网,8=23。 2、取上述要划分子网数的2的m次方的幂。如23,即m=3。 3、将上一步确定的幂m按高序占用主机地址m位后转换为十进制。如m为3 则是11100000,转换为十进制为224,即为最终确定的子网掩码。如果是C类网,则子网掩码为255.255.255.224;如果是B类网,则子网掩码为255.255.224.0;如果是C类网,则子网掩码为255.224.0.0。 在这里,子网个数与占用主机地址位数有如下等式成立:2m=n。其中,m表示占用主机地址的位数;n表示划分的子网个数。根据这些原则,将一个C类网络分成4个子网。若我们用的网络号为192.9.200,则该C类网内的主机IP地址就是192.9.200.1~192.9.200.254(因为全“0”和全“1”的主机地址有特殊含义,不作为有效的IP地址),现将网络划分为4个部分,按照以上步骤: 4=22,取22的幂,即2,则二进制为11,占用主机地址的高序位即为11000000,转换为十进制为192。这样就可确定该子网掩码为:192.9.200.192,4个子网的IP地址范围分别为: 二进制十进制 ① 11000000 00001001 11001000 00000001 11000000 00001001 11001000 00111110 192.9.200.1 192.9.200.62 ② 11000000 00001001 11001000 01000001 11000000 00001001 11001000 01111110 192.9.200.65 192.9.200.126 ③ 11000000 00001001 11001000 10000001 11000000 00001001 11001000 10111110 192.9.200.129 192.9.200.190 ④ 11000000 00001001 11001000 11000001 11000000 00001001 11001000 11111110 192.9.200.193 192.9.200.254 在此列出A、B、C三类网络子网数目与子网掩码的转换表,以供参考。 A类: 子网数目 占用位数 子网掩码 子网中主机数 2 1 255.128.0.0 8,388,606 4 2 255.192.0.0 4,194,302 8 3 255.224.0.0 2,097,150 16 4 255.240.0.0 1,048,574 32 5 255.248.0.0 524,286 64 6 255.252.0.0 262,142 128 7 255.254.0.0 131,070 128 8 255.255.0.0 65,534 ...

2004年10月13日 · 8 分钟 · zgia

Gmail转信的自动归类

我得Gmail是用来做备份的,因此需要将别的信箱的mail转到制定Gmail里,一开始用“xxx+xxx@gmail.com和xx.x@gmail.com”试验了半天,发现一个让自己很ft的事情: 我发现如果是转发过来的mail,当你设置filter Matches: to:(xxxxx.xx@gmail.com) Do this: Skip Inbox, Apply label “joke” 则,转来的mail是不会自动归类到joke的,而是直接放在inbox里。 我后来发现转来的信的“To”根本不是“xxxxx.xx@gmail.com”,所以没有被filter执行到。 ...

2004年10月12日 · 1 分钟 · zgia

态度决定一切

 如果令 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 分别等于百分之 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 那么Hard work (努力工作) ...

2004年10月10日 · 1 分钟 · zgia

干死小日本----杜鲁门说

在一所著名大学里的历史课上,教授正在向来自各国的同学提问:“要生存还是要灭亡。“这句名言出自谁的口中? 沉寂了半天之后,古田站起来说:“威廉·莎士比亚。” ...

2004年10月10日 · 2 分钟 · zgia

昨晚馄饨包多了

昨晚,今早,今天中午都吃的馄饨。 想到小的时候,那时我们家还很穷,一年吃不上几次的猪肉,偶尔有吃猪肉的机会,就包成饺子(我们称之为“毛饺子”,也不知道为啥这么称呼),这样一来,家里每个人都能吃到猪肉。每到这个时候,桌上的菜总是豆豉,或者再加一个青辣椒大蒜糊糊,热菜就不炒了,可是,全家仍旧非常的开心。家里人疼我,都省几口,给我吃。每次我都能吃很多,碗里的汤也喝得底朝天。 现在生活与以前是没有办法比的了。然而饺子,尤其是毛饺子(我现在心里称馄饨为毛饺子)仍然是我的最爱。每次吃起,总能想起小时候一家人吃毛饺子时候的开心和幸福。 ...

2004年10月7日 · 1 分钟 · zgia