如何解决Python,如何检测“向右”箭头键以跳过某些代码行
我是这个论坛和 python 的新手,非常感谢任何帮助。
我正在尝试在 FOR LOOP 下添加 if 语句,如下面我的代码所示,目前,我的鼠标在关闭当前 Web 选项卡之前移动到 4 个位置,并重复此操作 10 次。
>我的问题是如何添加 if 语句,即。如果鼠标移动时按右箭头键,会跳过几行代码,直接跳到最后四行代码?
当前选项卡关闭并移动到下一个选项卡,直到完成 10 个循环。这个新的 If 语句有助于通过人工干预更快地关闭浏览器选项卡,而不是等待整个 8 秒。
谢谢。
import pyautogui as pg
import time,pyautogui
import keyboard
from pynput.keyboard import Key,Listener
pg.moveto(2679,900)
pg.click()
for i in range (10):
pg.moveto(2679,1620,duration=2)
pg.moveto(2679,1923,duration=2)
pg.moveto(1365,1875,1572,duration=2)
pg.keyDown('ctrl')
pg.keyDown('w')
pg.keyUp('w')
pg.keyUp('ctrl')
解决方法
不确定这是否正是您的意思,但是当按下右箭头键时,它将退出循环并能够继续执行代码。
import pyautogui as pg
import time,pyautogui
import keyboard
from pynput.keyboard import Key,Listener
pg.moveTo(2679,900)
pg.click()
for i in range (10):
if keyboard.is_pressed('right arrow'):
break
pg.moveTo(2679,1620,duration=2)
pg.moveTo(2679,1923,duration=2)
pg.moveTo(1365,1875,1572,duration=2)
pg.keyDown('ctrl')
pg.keyDown('w')
pg.keyUp('w')
pg.keyUp('ctrl')
或者也许:
for i in range (10):
if keyboard.is_pressed('right arrow'):
pg.keyDown('ctrl')
pg.keyDown('w')
pg.keyUp('w')
pg.keyUp('ctrl')
else:
pg.moveTo(2679,duration=2)
pg.moveTo(2679,duration=2)
pg.moveTo(1365,duration=2)
pg.keyDown('ctrl')
pg.keyDown('w')
pg.keyUp('w')
pg.keyUp('ctrl')
,
您可以使用线程立即检查按键,这可能会节省一些时间。
from threading import Thread
import pyautogui as pg
import time,900)
pg.click()
pressed = False
StopCheckingForKey = False
def loop_function():
global pressed,StopCheckingForKey
for i in range (10):
pg.moveTo(2679,duration=2)
if pressed == True:
pressed = False
else:
pg.keyDown('ctrl')
pg.keyDown('w')
pg.keyUp('w')
pg.keyUp('ctrl')
StopCheckingForKey = True
def check_key():
global pressed,StopCheckingForKey
while not StopCheckingForKey:
if keyboard.is_pressed('right arrow'):
pg.keyDown('ctrl')
pg.keyDown('w')
pg.keyUp('w')
pg.keyUp('ctrl')
pressed = True
t1 = Thread(target=loop_function)
t1.setDaemon(True)
t1.start()
t2 = Thread(target=check_key)
t2.setDaemon(True)
t2.start()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。