我有一种情况,我想在有一定时间间隔发生移动时检测鼠标的移动,这是我登录时鼠标的第一次移动,然后捕获当前日期和时间并存储到文件中< / p>
以下代码可以正常工作:
@echo off
for /f "tokens=1,2" %%u in ('date /t') do set d=%%v
for /f "tokens=1" %%u in ('time /t') do set t=%%u
if "%t:~1,1%"==":" set t=0%t%
For /f "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set dt=%%c-%%b-%%d
set logfile=C:\Users\vvoor\OneDrive\Desktop\wirite\n\login_time_%dt%.txt
echo Login Time : %d% %t% %time:~-5,2% >> %logfile%
以上功能可以按预期给我日期和时间
但是我希望脚本在我第一次登录并第一次移动鼠标时应该自动触发并捕获日期和时间
时隙在12:00到2:00之间=>如果在给定时隙内第一次发生鼠标移动,则将当前日期和时间捕获到文本文件中
答案 0 :(得分:1)
cmd
无法使用鼠标。我使用了Npocmaka对here
批处理文件Mouse.bat(由Npocmaka编写)创建了一个mouse.exe
,您可以使用它来获取鼠标位置(以及任务中不需要的很多东西):
mouse position
这将为您提供类似514x312
的字符串
第一件事是将鼠标位置捕获到一个变量中(无需将其拆分为x和y坐标,因为您以后只想比较是否相等)
然后做一个简单的循环,将当前位置与保存的位置进行比较:
@echo off
for /f %%a in ('mouse.exe position') do set "initialPos=%%a"
:loop
timeout 2 >nul
for /f %%a in ('mouse.exe position') do set "currentPos=%%a"
if "%currentPos%" == "%initialPos%" goto :loop
echo Mouse has been moved.
创建计划任务(“新任务”,而不是“简单新任务”)以在所需时间范围内运行它。