微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python,如何检测“向右”箭头键以跳过某些代码行

如何解决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 举报,一经查实,本站将立刻删除。