@echo off set /a total_time=0 set /a slide_time=0 set /a swipe_speed=400 :loop set /a slide_time=%random% %% 3 + 3 set /a total_time=%total_time% + %slide_time% echo %slide_time% seconds slide, total %total_time% seconds adb shell input swipe 100 500 1000 500 %slide_time% %swipe_speed% timeout /t %slide_time% >nul if %total_time% leq 12600 goto loop echo Done! 给代码加上指定连接的设备功能
时间: 2024-02-16 16:05:30 浏览: 17
可以在代码前面加上以下命令,指定连接的设备:
```
adb devices
adb -s 设备ID号 shell "your command"
```
其中,`设备ID号`为连接设备的唯一标识符,可以在运行`adb devices`命令后查看。将`"your command"`替换为具体的命令即可。例如,将原代码中的`adb shell input swipe`替换为以下命令:
```
adb -s 设备ID号 shell input swipe
```
即可指定连接的设备。
相关问题
@echo off set /a total_time=0 set /a slide_time=0 :loop set /a slide_time=%random% %% 3 + 3 set /a total_time=%total_time% + %slide_time% echo %slide_time% seconds slide, total %total_time% seconds adb shell input swipe 1000 500 100 500 %slide_time% timeout /t %slide_time% >nul if %total_time% leq 12600 goto loop echo Done!
好的,以下是加入滑动速度的代码:
```batch
@echo off
set /a total_time=0
set /a slide_time=0
set /a slide_distance=0
set /a slide_count=0
:loop
set /a slide_time=%random% %% 3 + 3
set /a total_time=%total_time% + %slide_time%
rem 计算每个小段需要滑动的距离和时间
set /a slide_distance=900
set /a slide_count=%random% %% 5 + 5
set /a slide_distance=%slide_distance% / %slide_count%
set /a slide_time=%slide_time% / %slide_count%
rem 输出当前滑动信息
echo %slide_count% slides, %slide_distance% pixels per slide, %slide_time% seconds per slide, total %total_time% seconds
rem 逐个滑动小段距离
for /l %%i in (1,1,%slide_count%) do (
rem 计算当前位置
set /a start_x=1000-%%i*%slide_distance%
set /a end_x=%start_x%-%slide_distance%
rem 模拟人的滑动操作,每隔一段时间滑动一小段距离
adb shell input swipe %start_x% 500 %end_x% 500 %slide_time%
timeout /t %slide_time% >nul
)
if %total_time% leq 12600 goto loop
echo Done!
```
这段代码在每次循环中固定滑动距离为900,并随机生成滑动次数。然后计算每个小段需要滑动的距离和时间。在滑动的过程中,我们使用了一个for循环来逐个滑动小段距离,同时使用timeout命令来模拟人的操作。每个小段滑动的时间是刚才计算出来的,这样就可以实现模拟人类操作的滑动速度。
需要注意的是,这段代码仍然需要在Windows环境下运行,并且需要安装adb工具和安卓模拟器。另外,为了使用随机函数,需要将代码保存为.bat文件,而不是普通的文本文件。
def out_hand_swipe(pos_list, duration): conmmd = r'input swipe %s %s %s %s %s' % (pos_list[0][0], pos_list[0][1], pos_list[1][0], pos_list[1][1], duration) # print(conmmd) device.shell(conmmd) def loop_move_task(): # 循环移动指定坐标组 global dict_info global is_on_page global is_start try: pos_list = dict_info['swipe_pos'] swipe_pos = [[int(int(width) * pos_list[0][0]), int(int(height) * pos_list[0][1])], [int(int(width) * pos_list[1][0]), int(int(height) * pos_list[1][1])]] print("转换后的滑动坐标列表:%s" % swipe_pos) back_pos = [swipe_pos[1], swipe_pos[0]] random_speed = dict_info['random_speed'] time.sleep(1) is_on_page = True if is_move: while is_start: speed = rand_speed(random_speed) out_hand_swipe(swipe_pos, speed) out_hand_swipe(back_pos, speed) except Exception as e: is_on_page = False is_start = False print('<br>滑动方法调用异常: %s <br>' % traceback.format_exc()) return 修改这段代码,实现不离手滑动
要实现不离手滑动,可以使用`adb shell input swipe`命令的`--pointer`参数。该参数用于设置滑动时触摸点的数量。将`--pointer`参数设置为2,则表示滑动时需要两个触摸点,即一个按下,一个松开,从而实现滑动。
以下是修改后的代码示例:
```python
def out_hand_swipe(pos_list, duration):
# 使用两个触摸点进行滑动
conmmd = r'input swipe --pointer 2 %s %s %s %s %s' % (pos_list[0][0], pos_list[0][1], pos_list[1][0], pos_list[1][1], duration)
# print(conmmd)
device.shell(conmmd)
def loop_move_task():
# 循环移动指定坐标组
global dict_info
global is_on_page
global is_start
try:
pos_list = dict_info['swipe_pos']
swipe_pos = [[int(int(width) * pos_list[0][0]), int(int(height) * pos_list[0][1])],
[int(int(width) * pos_list[1][0]), int(int(height) * pos_list[1][1])]]
print("转换后的滑动坐标列表:%s" % swipe_pos)
back_pos = [swipe_pos[1], swipe_pos[0]]
random_speed = dict_info['random_speed']
time.sleep(1)
is_on_page = True
if is_move:
while is_start:
speed = rand_speed(random_speed)
out_hand_swipe(swipe_pos, speed)
out_hand_swipe(back_pos, speed)
except Exception as e:
is_on_page = False
is_start = False
print('<br>滑动方法调用异常: %s <br>' % traceback.format_exc())
return
```
修改后的代码使用了`--pointer`参数,将触摸点数设置为2,从而实现不离手滑动的效果。