Board logo

标题: 求一个能识别鼠标的代码 [打印本页]

作者: fe19880919     时间: 2010-5-7 14:23    标题: 求一个能识别鼠标的代码

上次在这里看到一个能用鼠标输入的批处理,不过太多了,看不懂。希望哪个会做的给发一个简单点的代码。
作者: HAT     时间: 2010-5-7 14:25
先说说你看不到哪些?
作者: fe19880919     时间: 2010-5-7 15:54
下面是我在论坛看到的原代码,不过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
作者: sl543001     时间: 2010-5-10 17:57
::载入/生成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 参数
来运行它
::可以直接在内存里运行这个程序
作者: sl543001     时间: 2010-5-10 17:59
还有这段代码到EXIT /B %err%这一行就结束了
后面的没用,只是忘了删了
QQ群:3401238
作者: sl543001     时间: 2010-5-10 18:00
鼠标功能有点小BUG还没解决,所以必须使用磁盘文件才能使用鼠标功能
作者: fe19880919     时间: 2010-5-12 11:30
这个东西还有很多看不懂的地方,虽然sl543001已经解释了,不过我还是感觉我自己水平太低了,这个有点看不懂,我已经把这个存起来了,先学点别的东西,等对批处理有了更深的理解之后再来看这个代码吧.