批处理之家's Archiver

wujunkai 发表于 2019-3-10 17:21

批处理怎样获取鼠标位置?

[code]@echo off
set nem=0
:main
        cls
        echo ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
        echo  ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
        echo ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
        echo  ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
        echo ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
        echo  ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
        echo ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
        echo  ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
        :get
                for /F "delims=, tokens=1,2" %%a in ( 'cmdmouse.exe' ) do (
                        set /A x=%%a / 8
                        set /A y=%%b / 16
                        echo %x% %y%
                        set /A nem=%nem%+1
                )
        if %nem% EQU 16 (
                set nem=0
                goto:main
        )
        goto:get
goto:eof[/code]我用上面的程序,怎么好像获取的位置是上一次击键的,望各位高手解决一下我这小白的问题,Thanks♪(・ω・)ノ
附件出自 [url]http://www.bathome.net/thread-8004-1-1.html[/url]

ivor 发表于 2019-3-10 19:56

for 里面不开启变量延迟?

wujunkai 发表于 2019-3-10 20:57

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=218116&ptid=52233]2#[/url] [i]ivor[/i] [/b]


    我现在初学for,什么叫延时变量还不懂...

wujunkai 发表于 2019-3-10 21:41

我已经解决了

@echo off
        echo ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
        echo  ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
        echo ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
        echo  ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
        echo ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
        echo  ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
        echo ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
        echo  ▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌▌
:main
        call:mouse_get x,y
        echo %x% %y%
goto:main

:mouse_get
        call:mouse_save ax,ay
        call:mouse_save bx,by
        if %ax% EQU %bx% if %ay% EQU %by% (
                set /A %~1=%ax%
                set /A %~2=%ay%
        ) else (
                call:mouse_get %~1,%~2
        )
goto:eof

:mouse_save
        for /f "delims=, tokens=1,2" %%i in ( 'cmdmouse.exe' ) do (
                set /A %~1=%%i / 8
                set /A %~2=%%j / 16
        )
goto:eof

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.