python - 设置循环以检测 discord.py 中的按键
问题描述
这些天我试图在我的代码中使用按键检测,似乎很难将按键检测功能推送到 discord.py 机器人循环功能
显然这是我一直在尝试做的
import pyscreenshot as ps
import keyboard
from PIL import Image
from discord.ext import commands
client=commands.Bot("!")
async def keypress_detector():
while True:
try:
if keyboard.is_pressed('['):#if key '[' is pressed
im=ps.grab()
im.save("screenie.png")
image_obj = Image.open("screenie.png")
cropped_image = image_obj.crop((130, 445, 580, 812))
cropped_image.save("updated.png")
await client.send_file(client.get_channel('id-here'), "updated.png")
else:
pass
except Exception as ex:
return print(str(ex))
if __name__ == "__main__":
client.loop.create_task(keypress_detector())
client.run("TOKEN")
如果我只想正常运行该功能(在机器人循环之外,尽管它不会将屏幕截图发送到频道),该功能工作得很好,我希望机器人在我按下某个键时将屏幕截图发送到聊天室。如果有其他方法,请告诉我。
更新
解决了,前几次没用,现在可以了。
解决方案
由于while True
导致非异步的无限循环(discord.py 依赖于此),您将遇到问题。我不确定您要实现的目标是否在 python 领域或任何语言领域中实际上是可能的。我也不确定您要在这里实现什么,如果您知道我错了,请纠正我。
推荐阅读
- laravel - Laravel:尺寸验证不起作用
- android - 返回动画/新动画
- javascript - 在事件单击时按顺序一一显示数组的元素
- ios - 如何填充 SCNBox 的内部
- sip - 可以听到音频但无法确认状态并在 20->30 秒后结束通话 pjsip
- sql - sql 根据具有现有值的其他列创建列
- javascript - 语义 UI 未按预期工作
- javascript - :: TypeError: _this3.feedbackform 不是函数?
- android - 如何在 Google Voice 中更改语音到文本的起始音
- javascript - 使用 OpenLayers 每隔 x 秒调用 ajax 方法后删除旧标记添加新标记