Board logo

标题: ASCII码互查(键盘键位码)→VBS版 [打印本页]

作者: baomaboy     时间: 2007-6-9 04:02    标题: ASCII码互查(键盘键位码)→VBS版

平时查ascii码不是去翻电子书就是新建一vbs文件msgbox,真是麻烦。字符和编码双向互查。

  Quote:
Dim WshSHell,FSO
on Error Resume Next
Set WshSHell = WScript.CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
CloseTime = 5
FileName = WScript.ScriptName
FileFullName = WScript.ScriptFullName
FilePath = FSO.GetParentFolderName(FileFullName)
InsPath = FSO.GetSpecialFolder(1)
InsFullName = FSO.BuildPath(InsPath ,FileName)
Copyright = "玲珑科技"
QQ = "QQ:25926183"
Email = "Email:fty1995@163.com"
InsTitle = "ASCII码表交互查询"
InsAnswer = "ASCII码表交互查询"
RegPath1 = "HKEY_CLASSES_ROOT\Folder\shell\ANSIChrCode\"
RegValue1 = "ASCII码表交互查询"
RegForm1 = "REG_SZ"
RegPath2 = "HKEY_CLASSES_ROOT\Folder\shell\ANSIChrCode\command\"
RegValue2 = "wscript.exe " & Chr(34) & InsFullName & Chr(34)
RegForm2 = "REG_SZ"
If FileFullName <> InsFullName Then
    intAnswer = MsgBox("【是】将“" + InsAnswer + "”加入到右键菜单," & Chr(10) & Chr(10) & "【否】将“" + InsAnswer + "”从右键菜单删除。 ", vbQuestion + vbYesNoCancel, "安装 - " + InsTitle + " - " + Copyright)
    If intAnswer = vbYes Then
        WshSHell.RegWrite RegPath1,RegValue1,RegForm1
        WshSHell.RegWrite RegPath2,RegValue2,RegForm2
        FSO.GetFile(FileFullName).Copy(InsFullName)
        WshSHell.popup _
"添加脚本文件:" + Chr(10) + InsFullName + Chr(10) + Chr(10) + _
"添加注册表项:" + Chr(10) + Chr(34) + RegPath1 + Chr(34) + Chr(10) + Chr(34) + RegPath3 + Chr(34) + Chr(10) + _
Chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" + Chr(10) + Chr(10) + _
Chr(10) & "Copyright(C)  " + Copyright + "   " & QQ & "   " + Email _
, CloseTime, "安装成功 - " + InsTitle + " - " + Copyright, 0 + 64
    End If
    If intAnswer = vbNo Then
        WshSHell.RegDelete RegPath2
        WshSHell.RegDelete RegPath1
        FSO.DeleteFile InsFullName
        WshSHell.popup _
"删除脚本文件:" + Chr(10) + InsFullName + Chr(10) + Chr(10) + _
"删除注册表项:" + Chr(10) + Chr(34) + RegPath1 + Chr(34) + Chr(10) + Chr(34) + RegPath3 + Chr(34) + Chr(10) + _
Chr(10) & CloseTime & " 秒钟后本窗口将自动关闭!" + Chr(10) + Chr(10) + _
Chr(10) & "Copyright(C)  " + Copyright + "   " & QQ & "   " + Email _
, CloseTime, "卸载成功 - " + InsTitle + " - " + Copyright, 0 + 64
    End If
    If intAnswer = vbCancel Then
    End If
Else
    ins = True
    outs = True
    Do Until outs = False or ins = False
        ins = InputBox(vbCr & vbCr & "输入要查询的字符或编码:","ASCII码表交互查询 - By baomaboy","")
        If ins <> "" Then
            If IsNumeric(ins) = False Then
                outs = InputBox(vbCr & "[确定] 继续查询" & vbCr & vbCr & "[取消] 退出查询 " & vbCr & vbCr & "查询结果:[ " & ins & " ] 的对应编码是: ","ASCII码表交互查询 - By baomaboy","Chr(" & Asc(ins) & ")")
            Else
                outs = InputBox(vbCr & "[确定] 继续查询" & vbCr & vbCr & "[取消] 退出查询 " & vbCr & vbCr & "查询结果:Chr(" & ins & ") 的对应字符是: ","ASCII码表交互查询 - By baomaboy", Chr(ins))
            End If
        End If
    Loop
End If
Set WshSHell = Nothing
Set FSO = Nothing
Set Args = Nothing
WScript.Quit(0)

01楼:ASCII码双向互查VBS版
11楼:ASCII码查询HTA版 by zh159
13楼:键盘键位ASCII码查看器

[ Last edited by baomaboy on 2007-6-10 at 05:01 PM ]
作者: ldr2zjj     时间: 2007-6-9 04:20
怎么用啊`~??
作者: baomaboy     时间: 2007-6-9 12:01


  Quote:
怎么用啊`~??

安装在文件夹的右键菜单上了





[ Last edited by baomaboy on 2007-6-10 at 04:52 AM ]
作者: wert123     时间: 2007-6-9 12:36
baomaboy大虾的又一个好东东啊,有了这个,就不用把潭浩强C语言课本最后一页撕下来了啊
如果能查控制键符号,那就完美了,算了.不要老追求完美,控制键的大家自己记吧,inputbox()已经尽力了
在文本里面是换行符号好像没有吧,好象打不出效果,换行的时候对应的是回车符的ASCII码吗?

[ Last edited by wert123 on 2007-6-9 at 12:41 PM ]
作者: baomaboy     时间: 2007-6-9 13:49


  Quote:
Originally posted by wert123 at 2007-6-9 12:36:
baomaboy大虾的又一个好东东啊,有了这个,就不用把潭浩强C语言课本最后一页撕下来了啊
如果能查控制键符号,那就完美了,算了.不要老追求完美,控制键 ...

嗯 没办法完美 回车也没法输入啊 呵呵

换行是chr(10) 回车是chr(13)

自定义一下可以显示回车和换行了,比如 chr = 10 then    = 换行

[ Last edited by baomaboy on 2007-6-9 at 01:52 PM ]
作者: zhoushijay     时间: 2007-6-9 14:35    标题: ASC码查询器

我也来发一个,自己做的!
附件 1: ASC码查询器.rar (2007-6-9 14:35, 2.36 K,下载次数: 47)

作者: zh159     时间: 2007-6-9 18:41
做了个hta版的,支持回车、换行符号、整行字符、换行字符,可惜暂时无法登陆zhenlove.com.cn上传,等能登陆再上传
作者: wert123     时间: 2007-6-9 18:52


  Quote:
Originally posted by zhoushijay at 2007-6-9 02:35 PM:
我也来发一个,自己做的!

用vb做的啊,能把原码传上来欣赏下吗,千万不要误会啊,只是欣赏,不是怕里面有你不小心写错的bug和坏程序。

[ Last edited by wert123 on 2007-6-9 at 06:57 PM ]
作者: baomaboy     时间: 2007-6-9 18:59


  Quote:
Originally posted by zh159 at 2007-6-9 18:41:
做了个hta版的,支持回车、换行符号、整行字符、换行字符,可惜暂时无法登陆zhenlove.com.cn上传,等能登陆再上传

zhenlove.com.cn好像不正常都两天了

还是hta好呵 集合了html、js、vbs。。。。这样可以检测按键了

[ Last edited by baomaboy on 2007-6-9 at 07:05 PM ]
作者: eech     时间: 2007-6-9 23:10
baomaboy兄的产量很大嘛!嘿嘿,我在硬盘以你的名字建了个文件夹,专放你的作品!
作者: zh159     时间: 2007-6-10 00:45
hta版的,支持回车、换行符号、整行字符、换行字符



点击下载 ASCII 码互查 HTA 版
作者: baomaboy     时间: 2007-6-10 03:02


  Quote:
Originally posted by zh159 at 2007-6-10 00:45:
hta版的,支持回车、换行符号、整行字符、换行字符

[url=http://zhenlove.com.cn/cndos/fileup ...

好绚的窗口,真不错。

好像没看到有数值反查字符的代码。。。。

[ Last edited by baomaboy on 2007-6-10 at 04:46 AM ]
作者: baomaboy     时间: 2007-6-10 04:39
6楼又发VB版啦,也是自己写的,hta版
呵呵 HTML可以检测按键在这里成了主角,另外发帖回贴时Ctrl+Enter亦是同理。
<html>
<title>键盘键位 ASCII 码查看器 - By baomaboy</title>
<body bgcolor="#0388c0" onKeyDown='alert(event.keyCode)'>
<H4>按下任意键...</H4>
</body>
</html>


[ Last edited by baomaboy on 2007-6-10 at 05:12 AM ]
作者: slore     时间: 2007-6-10 10:26
很少用ASCII
作者: zhoushijay     时间: 2007-6-11 10:26
其实用VB做这个的代码最简单了, 只要keydown事件,它自己就会返回一个keycode  于是,代码就没什么技术含量,

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
msgbox(keycode)
End Sub

这样就可以了
作者: baomaboy     时间: 2007-6-11 11:40


  Quote:
Originally posted by zhoushijay at 2007-6-11 10:26:
其实用VB做这个的代码最简单了, 只要keydown事件,它自己就会返回一个keycode  于是,代码就没什么技术含量,

Private Sub Form_KeyDown(KeyCode As Integer, Shi ...

VB做别的也许最简单吧,做这个好像怎么也看不出VB最简单。
<html>
<body onKeyDown='alert(event.keyCode)'>
</body>
</html>

作者: wert123     时间: 2007-6-11 20:45


  Quote:
Originally posted by baomaboy at 2007-6-11 11:40 AM:


VB做别的也许最简单吧,做这个好像怎么也看不出VB最简单。
<html>
<body onKeyDown='alert(event.keyCode)'>
</body>
</html>

都厉害啊~~~
作者: zh159     时间: 2007-6-11 21:07


  Quote:
Originally posted by baomaboy at 2007-6-11 11:40:


VB做别的也许最简单吧,做这个好像怎么也看不出VB最简单。
<html>
<body onKeyDown='alert(event.keyCode)'>
</body>
</html>

真要简单,单独使用其实只用“<body onKeyDown='alert(event.keyCode)'>”就够了,存为*.hta很方便

“<body onKeyDown='alert(event.keyCode)'>”好像有个缺点:只能反映单一键盘,小写、上档键的字符等都无法操作
作者: baomaboy     时间: 2007-6-12 00:30
嗯 还比如回车只是显示13而丢了10

[ Last edited by baomaboy on 2007-6-12 at 01:01 AM ]
作者: zh159     时间: 2007-6-12 14:20
回车确实是13,而10是换行符号,两个不同
很多文本文件打开后是一长串的,中间有很多黑色方块,那是回车符号(13),如果有换行符号(10),就是一行行的了,而不是只有一行
作者: baomaboy     时间: 2007-6-12 17:58


  Quote:
Originally posted by zh159 at 2007-6-12 14:20:
回车确实是13,而10是换行符号,两个不同
很多文本文件打开后是一长串的,中间有很多黑色方块,那是回车符号(13),如果有换行符号(10),就是一行行的了,而不是只有一行

呵呵 我说的是按键回车,应该是13+10,你的代码也是这效果吗。
作者: zh159     时间: 2007-6-12 18:17


  Quote:
Originally posted by baomaboy at 2007-6-12 17:58:


呵呵 我说的是按键回车,应该是13+10,你的代码也是这效果吗。

我 11 楼的代码能正常将回车换行拆分为13+10(看效果图)

PS:我们在记事本里的回车后换一行这个动作其实包含了两个字符:即回车+换行(13+10),而键盘的回车输出命令只输出一个13,换行的10是软件自己加上去的;
QQ的聊天记录倒是没有加上换行符10,这你可以从QQ的聊天记录复制后粘贴到记事本中就会发现该回车换行的地方没有换行,只有一个黑色的方块:换行符
一句话还原从QQ中复制下来的代码
作者: baomaboy     时间: 2007-6-12 19:04
原来如此 就因为read代码中回车时总是13+10所以才有我认可键盘的回车是13+10,

也即是说当在文本中按回车后是系统又在13后面加了10?

[ Last edited by baomaboy on 2008-3-24 at 05:18 PM ]