主题:关于键盘上下左右移动光标键的ASCII码???
野生大白菜
[专家分:120] 发布于 2006-10-02 10:44:00
看到过键盘上很多的键都有自己的ASCII码,好多书上都没有给全,查查网站,好像就没有找到过上下左右移动光标键的ASC码,有的说得自定义,在delphi语言中有的说
上是38 下是40 左是37 右是39,不知道是不是对的,ASCII码是国际通用的,我想在QB中也行,但是看到过里面这个区帖子里有一个编菜单的程序,感觉不像是对的,引
IF k$ = CHR$(0) + "P" THEN Mx = Mx + 1' '按的是下键就加1
IF k$ = CHR$(0) + "H" THEN Mx = Mx - 1
IF k$ = CHR$(13) THEN EXIT DO' '按回车就退出
从上面这一程序段来看的话该是下键是80H,上键该是78H,而在通常的7位码ASCII表上是读不出来的,有高手知道吗???????
回复列表 (共15个回复)
沙发
啊远 [专家分:2610] 发布于 2006-10-02 11:06:00
左 = 37
上 = 38
右 = 39
下 = 40
' 上面这些数制都是十进制的!
标准的键盘扫描码应该都一样的吧!
板凳
moz [专家分:37620] 发布于 2006-10-02 11:58:00
两回事
方向键是检测不到ASCII码的
但可以获得键盘扫描码
3 楼
啊远 [专家分:2610] 发布于 2006-10-02 12:09:00
嗯!MOZ说的是对的
4 楼
野生大白菜 [专家分:120] 发布于 2006-10-02 14:54:00
高手再看一下!!!
那刚才这个程序段里头
DO
WHILE k$ = "": k$ = INKEY$: WEND' '当键盘有键按就退出小循环
IF k$ = CHR$(0) + "P" THEN Mx = Mx + 1' '按的是下键就加1
IF k$ = CHR$(0) + "H" THEN Mx = Mx - 1
IF k$ = CHR$(13) THEN EXIT DO' '按回车就退出
IF Mx > 4 THEN Mx = 1' '超过4行光条就回到第一行
IF Mx < 1 THEN Mx = 4' '这里最大最小的行可以用个变量来定义会更方
……
……
chr$(0)不是要取0的ascII代码吗,再加上P的ascII代码,两者加起来等于下键的扫描码吗???按上头所说的扫描码,我看怎么不等啊!
5 楼
moz [专家分:37620] 发布于 2006-10-02 15:29:00
也可以这么认为。
但你要看到的是,
ASCII 码是单个字符的,
键盘扫描码,是通过ASCII扩展来表示的,
以空字符chr$(0)带头
6 楼
moz [专家分:37620] 发布于 2006-10-02 15:34:00
嗯!MOZ说的是对的
此帖被评20分
这世界真是什么事情都会发生。
7 楼
野生大白菜 [专家分:120] 发布于 2006-10-02 15:40:00
呵呵
我是不太懂这一套评分的
看到有评的就乱点了一下!!!
不过这个问题我还是不怎么明白!
看编程相关知识里的关于键盘的部分也是一知半解!!
看来是脑子的问题!!要不你给我讲全一点!
呵呵!
8 楼
啊远 [专家分:2610] 发布于 2006-10-02 15:42:00
我晕!
9 楼
野生大白菜 [专家分:120] 发布于 2006-10-02 15:43:00
有点明白了!!!!
chr$(0)是空字符的意思啊
我还以为是0的意思
是不是空的ASC码还是0的ASC码一样啊!!!
10 楼
野生大白菜 [专家分:120] 发布于 2006-10-02 15:48:00
到网上搜了搜,看到的扫描码都是0XA1类型的,上头高手所说的chr$(0)是不是开头的0啊,而后头所加的40就是A1的位置啊!!!
如果是的话那就明白了!
我来回复