| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 751 人关注过本帖
标题:关于(KeyAscii 码转换的问题)~请各位师傅进来帮帮忙!!
只看楼主 加入收藏
qiziyun
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2013-1-14
结帖率:83.33%
收藏
已结贴  问题点数:10 回复次数:11 
关于(KeyAscii 码转换的问题)~请各位师傅进来帮帮忙!!
程序代码:
Private Declare Function GetKeyNameText Lib "user32" Alias "GetKeyNameTextA" (ByVal lParam As Long, ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

Dim s As String

s = String(100, Chr(0))

GetKeyNameText MapVirtualKey(KeyCode, 0) * 65536, s, 100

s = Left(s, InStr(s, Chr(0)))

Me.Cls

Print s
End Sub
图片附件: 游客没有浏览图片的权限,请 登录注册


我用的源码是这里



KeyAscii 替换上去就提示错误
是不是声明限制了!!
还有运行不正常!应该怎么写才对呢!

我想实现的是鼠标放到Text文本框里按下键盘任何一个按钮就能在Text1里显示出对应的Alias码!列如我输入1就显示49
Text2 是显示对应的KeyDown识别的案件字符 列如a就显示A或a 尝试了很多次了就是不行!!各位谁看到知道的给个列子!谢谢了!!!!!

工程1.rar (1.85 KB)
方便各位老师了!现成的附件!帮我改改谢谢了
搜索更多相关主题的帖子: color 
2013-01-18 07:54
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:5 
程序代码:
Private Declare Function GetKeyNameText Lib "user32" Alias "GetKeyNameTextA" (ByVal lParam As Long, ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)

Dim s As String

s = String$(255, vbNullChar)

GetKeyNameText MapVirtualKey(KeyCode, 0) * 65536, s, 255

s = Left$(s, InStr(s, vbNullChar) - 1)

Me.Cls

Text2.Text = s
Print keycode,s
End Sub

2013-01-18 11:50
qiziyun
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2013-1-14
收藏
得分:0 
回复 2楼 bczgvip
    bczgvip   还在吗!!KeyAscii码不能换吗!!要怎么在目前这个列子上来声明和修改呢!!!!
2013-01-18 22:57
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:0 
改改不就行了?话说【Alias码】是神马?
程序代码:
Option Explicit
Private Declare Function GetKeyNameText Lib "user32" Alias "GetKeyNameTextA" (ByVal lParam As Long, ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long

Private Sub Text1_KeyPress(KeyAscii As Integer)
    Dim s As String
    s = String$(255, vbNullChar)
    GetKeyNameText MapVirtualKey(KeyAscii, 0) * 65536, s, 255
    s = Left$(s, InStr(s, vbNullChar) - 1)
    Me.Cls
    Text2.Text = s
    Print KeyAscii, s
End Sub
2013-01-19 00:54
qiziyun
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2013-1-14
收藏
得分:0 
回复 4楼 bczgvip
bczgvip  很感谢你!,我还想问个小问题!!我怎么让他从TEXT文本框显示出来以后!如果矮子连着往TEXT1里输入按键,他居然叠加在一起。

图片附件: 游客没有浏览图片的权限,请 登录注册

按下键盘1对应的是49
返回的对应码是对的。
就是框里会保留原始记录,
第二次按的话就会叠加在一起变成
4949 或者949 我试着+了些删除前面文字的代码
就是不行,一定是我书写不对。应该怎么写才对呢,麻烦你了
2013-01-20 03:47
qiziyun
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2013-1-14
收藏
得分:0 
回复 4楼 bczgvip
可用来写后台操作模拟内存占用很小
2013-01-20 06:24
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:653
专家分:3402
注 册:2008-5-7
收藏
得分:5 
不知道楼主要完成什么功能,如果仅需要在text1中按键显示的是对应的ascii码的话,根本无需声明api函数即可完成,代码如下:
程序代码:
'复制下列代码后,在text1中按键即可看到效果
Private Sub Form_Load()
  Text1 = ""
  Text2 = ""
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
  Dim s As String, i As Integer
  If KeyAscii = 8 And Len(Text2) > 0 Then
    '处理退格键
    s = Asc(Right(Text2, 1))
    Text2 = Left(Text2, Len(Text2) - 1)
    Text1 = Left(Text1, Len(Text1) - Len(s))
    If Len(Text1) > 0 Then Text1.SelStart = Len(Text1)
    KeyAscii = 0
  End If
  If KeyAscii < 30 And KeyAscii >= 0 Then Exit Sub    '小于30大雨或等于0的大多为控制字符
  Text2 = Text2 & Chr(KeyAscii)
  Text1 = Text1 & Trim(Str(KeyAscii))
  Text1.SelStart = Len(Text1)
  KeyAscii = 0
End Sub


[ 本帖最后由 lowxiong 于 2013-1-20 09:21 编辑 ]
2013-01-20 09:05
yz1025
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:491
专家分:919
注 册:2012-10-26
收藏
得分:0 
以下是引用qiziyun在2013-1-18 07:54:06的发言:


这个布景主题好熟悉..

不要投我
2013-01-21 10:18
qiziyun
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2013-1-14
收藏
得分:0 
回复 8楼 yz1025
什么布景啊!????你是说我发帖的习惯吗!呵呵
2013-01-21 23:13
qiziyun
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2013-1-14
收藏
得分:0 
我需要显示ascii码的你这个不能显示没声明是吧??
2013-01-21 23:16
快速回复:关于(KeyAscii 码转换的问题)~请各位师傅进来帮帮忙!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021175 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved