中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 求一个能识别鼠标的代码 上一主题 | 下一主题
fe19880919
初级用户





积分 27
发帖 24
注册 2010-5-2
状态 离线
『楼 主』:  求一个能识别鼠标的代码

上次在这里看到一个能用鼠标输入的批处理,不过太多了,看不懂。希望哪个会做的给发一个简单点的代码。

2010-5-7 14:23
查看资料  发送邮件  发短消息 网志  OICQ (1161560405)  编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

先说说你看不到哪些?



2010-5-7 14:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fe19880919
初级用户





积分 27
发帖 24
注册 2010-5-2
状态 离线
『第 3 楼』:  

下面是我在论坛看到的原代码,不过set sybcom=后面的全不懂了,希望能给解释下或说个简单点的鼠标识别的代码,谢了。

@echo oFF&SETLOCAL ENABLEDELAYEDEXPANSION&(CHCP 437 &GRAFTABL 936)>NUL
mode con cols=80 lines=25 >nul
::载入/生成sybc 变量SYBCOM保存SYBC的16进制数据 V保存DEBUG代码 最后通过管道交由DEBUG执行
SET SYBCOM=A100``80BE BA00 0 88AC ACC4 88AC 80C3 FC`3674 FC80 BEFF 82 4B75 2CBE AC00 C488`86AC 50C4 BE1F 0 3CAC 7553 ACFB 593C`F675 3CAC 7542 ACF1 433C EC75 3CAC 7553`ACE7 3D3C E275 1DEB 1B3 8EE9 B300 E902`89 3CAC 743A 3C0E 740D 3C5B 7400 8357`1EE 83E9 AC00 313C 1874 4A3C DA74 4B3C`DB74 4D3C 4474 6A3C CE74 6B3C CF74 6D3C`3874 D6E8 E800 F0 183C 2A7F C688 CAE8`E800 E4 4F3C 1E7F C288 2B0 E2F6 B050`F6A0 5FE6 C701 AC57 243C 374 EE83 E801`74 D188 38EB 4CB4 21CD B8 CD00 B833`1 33CD 5B8 CD00 A933 3 F174 3B8`CD00 8933 B3C8 F608 EBF3 B0DB CD00 8016`2FB D274 E088 CEEB 815F A0C7 5700 B850`B800 750 295A 88F5 ACCA 243C B174 3B3C`1174 D3C 5174 3C 4D74 233C 875 D783`EB01 E904 FF3C 80AA FA 574 D088 EBAA`83D8 1D7 D3EB 32E8 3C00 7523 8008 23FB`375 B2 38C3 74D8 87F9 3CC3 7E39 402`8009 39FB 37E C380 2409 800F FE3 10B2`E2F6 D800 C288 B4C3 CD4C AC21 203C FB74`D3C F374 3C EF74 C388 3CAC 7420 3CEC`740D 3CE4 7400 C3E0 C387 302C EB80 B430`F60A E4 C3D8``
SET SYBCV=`A80`DB FF``RCX`200`G`Q
SET V=;RCX;200;N SYBC.COM;W;Q
(ECHO.%SYBCOM:`=&ECHO.DW %&ECHO.%V:;=&ECHO.%)|DEBUG>NUL
echo SYBN 鼠标软键盘 使用CMD QQ:354324773
(echo.Q)|debug>NUL
ping 543001 -n 1 -w 40 >NUL
:voidmain
echo 请单击鼠标以继续...
SYBC m
call :SYBC 10000$FcSYBN $f1鼠标软键盘 $F0不用键盘使用CMD $f8QQ:354324773     $F1请用鼠标点击输入命令 点击$2cGo$F1执行;
call :SYBC 10100$F21$7c2$F23$7c4$F25$7c6$F27$7c8$F29$7c0$F2 $7c/$F2A$7cB$F2C$7cD$F2E$7cF$F2G$7cH$F2I$7cJ$F2K$7cL$F2M$7cN$F2O$7cP$F2Q$7cR$F2S$7cT$F2U$7cV$F2W$7cX$F2Y$7cZ$f2-$7c.$F2删$2cGo
set commands=
call :MOUS
goto :voidmain
:MOUS
set newchar=.
call :SYBC 10200$0F%commands%_                                                                             ;
SYBC M
set err=%errorlevel%
title %err%     
if %err% LSS 256 set newchar=go
if %err% LSS 78 set newchar=删
if %err% LSS 76 set newchar=.
if %err% LSS 75 set newchar=-
if %err% LSS 74 set newchar=Z
if %err% LSS 72 set newchar=Y
if %err% LSS 70 set newchar=X
if %err% LSS 68 set newchar=W
if %err% LSS 66 set newchar=V
if %err% LSS 64 set newchar=U
if %err% LSS 62 set newchar=T
if %err% LSS 60 set newchar=S
if %err% LSS 58 set newchar=R
if %err% LSS 56 set newchar=Q
if %err% LSS 54 set newchar=P
if %err% LSS 52 set newchar=O
if %err% LSS 50 set newchar=N
if %err% LSS 48 set newchar=M
if %err% LSS 46 set newchar=L
if %err% LSS 44 set newchar=K
if %err% LSS 42 set newchar=J
if %err% LSS 40 set newchar=I
if %err% LSS 38 set newchar=H
if %err% LSS 36 set newchar=G
if %err% LSS 34 set newchar=F
if %err% LSS 32 set newchar=E
if %err% LSS 30 set newchar=D
if %err% LSS 28 set newchar=C
if %err% LSS 26 set newchar=B
if %err% LSS 24 set newchar=A
if %err% LSS 22 set newchar=/
if %err% LSS 21 set newchar=_
if %err% LSS 20 set newchar=0
if %err% LSS 18 set newchar=9
if %err% LSS 16 set newchar=8
if %err% LSS 14 set newchar=7
if %err% LSS 12 set newchar=6
if %err% LSS 10 set newchar=5
if %err% LSS 8 set newchar=4
if %err% LSS 6 set newchar=3
if %err% LSS 4 set newchar=2
if %err% LSS 2 set newchar=1
title %err%[%newchar%]
if %newchar% == go goto :go
if %newchar% == 删 goto :del
set commands=%commands%%newchar%
set commands=%commands:_= %
goto :MOUS
:go
echo.------------------------------------------------
call :SYBC 10200$0A%commands%      ;
%commands%
goto :EOF
:del
set commands=%commands:~0,-1%
goto :MOUS





:SYBC
set SYBCS=%*
(ECHO.%SYBCOM:`=&ECHO.DW %&ECHO.%SYBCV:`=&ECHO.%)|DEBUG>NUL
goto :EOF
:SYBCD
IF "%1" == "" SET SYBCCD=00&GOTO SYBCC
SET SYBCCD=64
set SYBCC=%*
:SYBCC
SET V=`A80`DB %SYBCCD% 00 "%SYBCC%" 0D``RCX`200`G`Q
(ECHO.%SYBCOM:`=&ECHO.DW %&ECHO.%V:`=&ECHO.%)|DEBUG>NUL
EXIT /B %err%




if %err% LSS 78 set newchar=go
if %err% LSS 76 set newchar=删
if %err% LSS 75 set newchar=.
if %err% LSS 74 set newchar=-
if %err% LSS 72 set newchar=Z
if %err% LSS 70 set newchar=Y
if %err% LSS 68 set newchar=X
if %err% LSS 66 set newchar=W
if %err% LSS 64 set newchar=V
if %err% LSS 62 set newchar=U
if %err% LSS 60 set newchar=T
if %err% LSS 58 set newchar=S
if %err% LSS 56 set newchar=R
if %err% LSS 54 set newchar=Q
if %err% LSS 52 set newchar=P
if %err% LSS 50 set newchar=O
if %err% LSS 48 set newchar=N
if %err% LSS 46 set newchar=M
if %err% LSS 44 set newchar=L
if %err% LSS 42 set newchar=K
if %err% LSS 40 set newchar=J
if %err% LSS 38 set newchar=I
if %err% LSS 36 set newchar=H
if %err% LSS 34 set newchar=G
if %err% LSS 32 set newchar=F
if %err% LSS 30 set newchar=E
if %err% LSS 28 set newchar=D
if %err% LSS 26 set newchar=C
if %err% LSS 24 set newchar=B
if %err% LSS 22 set newchar=A
if %err% LSS 21 set newchar=/
if %err% LSS 20 set newchar=
if %err% LSS 18 set newchar=0
if %err% LSS 16 set newchar=9
if %err% LSS 14 set newchar=8
if %err% LSS 12 set newchar=7
if %err% LSS 10 set newchar=6
if %err% LSS 8 set newchar=5
if %err% LSS 6 set newchar=4
if %err% LSS 4 set newchar=3
if %err% LSS 2 set newchar=2
if %err% LSS 0 set newchar=1

2010-5-7 15:54
查看资料  发送邮件  发短消息 网志  OICQ (1161560405)  编辑帖子  回复  引用回复
sl543001
中级用户




积分 499
发帖 225
注册 2008-12-30
状态 离线
『第 4 楼』:  

::载入/生成sybc 变量SYBCOM保存SYBC的16进制数据 V保存DEBUG代码 最后通过管道交由DEBUG执行
SET SYBCOM=
::就是说把一个叫SYBC.COM的程序转换成了16进制代码,这段代码以DW格式保存到变量SYBCOM中
::事后用(ECHO.%SYBCOM:`=&ECHO.DW %&ECHO.%SYBCV:`=&ECHO.%)|DEBUG>NUL
::也可以用
SET V=;RCX;200;N SYBC.COM;W;Q
(ECHO.%SYBCOM:`=&ECHO.DW %&ECHO.%V:;=&ECHO.%)|DEBUG>NUL
来在硬盘上生成这个文件
你只需要知道你可以用
call :SYBC 参数
等效于直接用
sybc 参数
来运行它
::可以直接在内存里运行这个程序



SYBNQQ:354324773
2010-5-10 17:57
查看资料  发送邮件  发短消息 网志  OICQ (354324773)  编辑帖子  回复  引用回复
sl543001
中级用户




积分 499
发帖 225
注册 2008-12-30
状态 离线
『第 5 楼』:  

还有这段代码到EXIT /B %err%这一行就结束了
后面的没用,只是忘了删了
QQ群:3401238



SYBNQQ:354324773
2010-5-10 17:59
查看资料  发送邮件  发短消息 网志  OICQ (354324773)  编辑帖子  回复  引用回复
sl543001
中级用户




积分 499
发帖 225
注册 2008-12-30
状态 离线
『第 6 楼』:  

鼠标功能有点小BUG还没解决,所以必须使用磁盘文件才能使用鼠标功能



SYBNQQ:354324773
2010-5-10 18:00
查看资料  发送邮件  发短消息 网志  OICQ (354324773)  编辑帖子  回复  引用回复
fe19880919
初级用户





积分 27
发帖 24
注册 2010-5-2
状态 离线
『第 7 楼』:  

这个东西还有很多看不懂的地方,虽然sl543001已经解释了,不过我还是感觉我自己水平太低了,这个有点看不懂,我已经把这个存起来了,先学点别的东西,等对批处理有了更深的理解之后再来看这个代码吧.

2010-5-12 11:30
查看资料  发送邮件  发短消息 网志  OICQ (1161560405)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: