中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-07-13 09:30
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论]VBS中奇妙的中文…… 查看 5,037 回复 19
16 发表于 2009-02-23 11:28 ·  中国 陕西 西安 电信
新手上路
积分 6
发帖 10
注册 2009-02-12 12:05
17年会员
UID 138628
性别 男
状态 离线
这都被你发现了啊
17 发表于 2010-02-05 22:06 ·  中国 天津 电信
新手上路
积分 8
发帖 33
注册 2009-11-10 19:45
16年会员
UID 154524
性别 男
状态 离线
太厉害了…
18 发表于 2010-07-18 15:58 ·  中国 重庆 电信
新手上路
积分 14
发帖 9
注册 2010-01-15 11:13
16年会员
UID 158705
性别 男
状态 离线
强啊 终于又知道了点新的知识
19 发表于 2010-08-02 17:15 ·  中国 湖北 襄阳 电信
新手上路
积分 12
发帖 12
注册 2010-06-26 09:35
16年会员
UID 169536
性别 男
状态 离线
呵呵,真有意思
20 发表于 2010-08-02 18:55 ·  中国 湖北 襄阳 电信
新手上路
积分 12
发帖 12
注册 2010-06-26 09:35
16年会员
UID 169536
性别 男
状态 离线
至于具体十六进制数代表什么功能,我在MSDN找到了答案。
http://msdn.microsoft.com/en-us/library/ms645540(VS.85).aspx

下面摘录一段:

VK_BROWSER_BACK (0xA6)
Windows 2000/XP: Browser Back key

VK_BROWSER_FORWARD (0xA7)
Windows 2000/XP: Browser Forward key

VK_BROWSER_REFRESH (0xA8)
Windows 2000/XP: Browser Refresh key

VK_BROWSER_STOP (0xA9)
Windows 2000/XP: Browser Stop key

VK_BROWSER_SEARCH (0xAA)
Windows 2000/XP: Browser Search key

VK_BROWSER_FAVORITES (0xAB)
Windows 2000/XP: Browser Favorites key

VK_BROWSER_HOME (0xAC)
Windows 2000/XP: Browser Start and Home key

VK_VOLUME_MUTE (0xAD)
Windows 2000/XP: Volume Mute key

VK_VOLUME_DOWN (0xAE)
Windows 2000/XP: Volume Down key

VK_VOLUME_UP (0xAF)
Windows 2000/XP: Volume Up key

VK_MEDIA_NEXT_TRACK (0xB0)
Windows 2000/XP: Next Track key

VK_MEDIA_PREV_TRACK (0xB1)
Windows 2000/XP: Previous Track key

VK_MEDIA_STOP (0xB2)
Windows 2000/XP: Stop Media key

VK_MEDIA_PLAY_PAUSE (0xB3)
Windows 2000/XP: Play/Pause Media key

VK_LAUNCH_MAIL (0xB4)
Windows 2000/XP: Start Mail key

VK_LAUNCH_MEDIA_SELECT (0xB5)
Windows 2000/XP: Select Media key

VK_LAUNCH_APP1 (0xB6)
Windows 2000/XP: Start Application 1 key

VK_LAUNCH_APP2 (0xB7)
Windows 2000/XP: Start Application 2 key

B6 Application 1 就是我的电脑
B7 Application 2 就是计算器

为了更方便的实现这些功能,我编了一段简单的vbs


a=chr(&h88b5)
'msgbox "d" & a & "d"
CreateObject("wscript.shell").Sendkeys a


简单的解释一下
a=chr(&h88b5)
'“&h”表示后面的数是十六进制数,b5代表Media key,也就是媒体播放器(比如千千静听),为什么前面要加88呢?加了88以后,有两个字节,也就构成了一个汉字(是GBK里的),因为a代表的字符若不是真正有意义的字符(比如ASCII字符和汉字),sendkeys就不会起作用,大家可以试一下。至于为什么选择88,因为在msdn里写着(0x88-8F)Unassigned,同时88为开头的字符可以组成有意义的GBK汉字。
'msgbox "d" & a & "d"
'可以测试a是不是有意义的字符
CreateObject("wscript.shell").Sendkeys a
'调用SendKeys方法。

[ Last edited by zsc37201 on 2010-8-2 at 19:38 ]
论坛跳转: