python - Python程序只工作几秒钟就崩溃了
问题描述
嘿最近我的 python 程序有问题。启动后它会工作几秒钟并显示“无响应”。这是类似于程序和代码的宏,但不适用于窗口渲染。当我将检测滚动的代码标记为注释程序正确呈现但无用时。这是我的代码
import pynput
from pynput.mouse import Controller, Button
from pynput.mouse import Listener as MouseListener
import keyboard
from time import sleep
import os
import pyglet
import pyglet.window.key
width = 600
height = 500
canchange = 1
togled = 0
title = "ScrollClick by Pouek_"
window = pyglet.window.Window(width, height, title)
text = "ScrollClick"
Scrolled = "Don't worry now. It's working I promise"
etc = "Made by Pouek_ @2020"
mouse = Controller()
while True:
try:
if keyboard.is_pressed('t'):
if canchange == 1 & togled == 1:
canchange = 0
togled = 0
print("Toggled of")
if canchange == 1 & togled == 0:
canchange = 0
togled = 1
print("Toggled on")
break
except:
break
if canchange == 0:
sleep(0.5)
canchange = 1
label3 = pyglet.text.Label(etc,
font_name ='Times New Roman',
font_size = 24,
x = window.width//2, y = window.height//1.25,
anchor_x ='center', anchor_y ='center')
label = pyglet.text.Label(text,
font_name ='Times New Roman',
font_size = 36,
x = window.width//2, y = window.height//2,
anchor_x ='center', anchor_y ='center')
new_label = pyglet.text.Label(text,
font_name ='Times New Roman',
font_size = 10,
x = 25, y = 25)
new_label2 = pyglet.text.Label(text,
font_name ='Times New Roman',
font_size = 10,
x = 25, y = 25)
label2 = pyglet.text.Label(Scrolled,
font_name ='Times New Roman',
font_size = 24,
x = window.width//2, y = window.height//10,
anchor_x ='center', anchor_y ='center')
@window.event
def on_draw():
window.clear()
label3.draw()
label.draw()
label2.draw()
def on_scroll(x, y, dx, dy):
if togled == 1:
print('Mouse scrolled at ({0}, {1})({2}, {3})'.format(x, y, dx, dy))
print("Mouse scrolled")
mouse.press(Button.right)
mouse.release(Button.right)
mouse_listener = MouseListener(on_move=None, on_click=None, on_scroll=on_scroll)
mouse_listener.start()
mouse_listener.join()
mouse = Controller()
print ("Current position: " + str(mouse.position))
#os.system("1.py")
img = image = pyglet.resource.image("logo.png")
window.set_icon(img)
pyglet.app.run()
感谢帮助
解决方案
我解决了这个问题并意识到这个项目是不稳定的。这是我的做法。首先,我用这段代码创建了第二个文件并将其命名为 1.py
from pynput.mouse import Controller, Button
from pynput.mouse import Listener as MouseListener
import os
def on_scroll(x, y, dx, dy):
print('Mouse scrolled at ({0}, {1})({2}, {3})'.format(x, y, dx, dy))
print("Mouse scrolled")
mouse.press(Button.right)
mouse.release(Button.right)
mouse_listener = MouseListener(on_move=None, on_click=None, on_scroll=on_scroll)
mouse = Controller()
mouse_listener.start()
mouse_listener.join()
然后我摆脱了密钥激活功能并从此更改了代码
from pynput.mouse import Controller, Button
from pynput.mouse import Listener as MouseListener
import keyboard
from time import sleep
import os
import pyglet
import pyglet.window.key
width = 600
height = 500
canchange = 1
togled = 0
title = "ScrollClick by Pouek_"
window = pyglet.window.Window(width, height, title)
text = "ScrollClick"
Scrolled = "Don't worry now. It's working I promise"
etc = "Made by Pouek_ @2020"
mouse = Controller()
while True:
try:
if keyboard.is_pressed('t'):
if canchange == 1 & togled == 1:
canchange = 0
togled = 0
print("Toggled of")
if canchange == 1 & togled == 0:
canchange = 0
togled = 1
print("Toggled on")
break
except:
break
if canchange == 0:
sleep(0.5)
canchange = 1
label3 = pyglet.text.Label(etc,
font_name ='Times New Roman',
font_size = 24,
x = window.width//2, y = window.height//1.25,
anchor_x ='center', anchor_y ='center')
label = pyglet.text.Label(text,
font_name ='Times New Roman',
font_size = 36,
x = window.width//2, y = window.height//2,
anchor_x ='center', anchor_y ='center')
new_label = pyglet.text.Label(text,
font_name ='Times New Roman',
font_size = 10,
x = 25, y = 25)
new_label2 = pyglet.text.Label(text,
font_name ='Times New Roman',
font_size = 10,
x = 25, y = 25)
label2 = pyglet.text.Label(Scrolled,
font_name ='Times New Roman',
font_size = 24,
x = window.width//2, y = window.height//10,
anchor_x ='center', anchor_y ='center')
@window.event
def on_draw():
window.clear()
label3.draw()
label.draw()
label2.draw()
def on_scroll(x, y, dx, dy):
if togled == 1:
print('Mouse scrolled at ({0}, {1})({2}, {3})'.format(x, y, dx, dy))
print("Mouse scrolled")
mouse.press(Button.right)
mouse.release(Button.right)
mouse_listener = MouseListener(on_move=None, on_click=None, on_scroll=on_scroll)
mouse_listener.start()
mouse_listener.join()
mouse = Controller()
print ("Current position: " + str(mouse.position))
#os.system("1.py")
img = image = pyglet.resource.image("logo.png")
window.set_icon(img)
pyglet.app.run()
对此
import pynput
from pynput.mouse import Controller, Button
from pynput.mouse import Listener as MouseListener
from pynput.keyboard import Listener
import os
import pyglet
import pyglet.window.key
width = 600
height = 500
title = "ScrollClick by Pouek_"
window = pyglet.window.Window(width, height, title)
text = "ScrollClick"
Scrolled = "Don't worry now. It's working I promise"
etc = "Made by Pouek_ @2020"
mouse = Controller()
label3 = pyglet.text.Label(etc,
font_name ='Times New Roman',
font_size = 24,
x = window.width//2, y = window.height//1.25,
anchor_x ='center', anchor_y ='center')
label = pyglet.text.Label(text,
font_name ='Times New Roman',
font_size = 36,
x = window.width//2, y = window.height//2,
anchor_x ='center', anchor_y ='center')
new_label = pyglet.text.Label(text,
font_name ='Times New Roman',
font_size = 10,
x = 25, y = 25)
new_label2 = pyglet.text.Label(text,
font_name ='Times New Roman',
font_size = 10,
x = 25, y = 25)
label2 = pyglet.text.Label(Scrolled,
font_name ='Times New Roman',
font_size = 24,
x = window.width//2, y = window.height//10,
anchor_x ='center', anchor_y ='center')
@window.event
def on_draw():
window.clear()
label3.draw()
label.draw()
label2.draw()
mouse = Controller()
print ("Current position: " + str(mouse.position))
img = image = pyglet.resource.image("logo.png")
window.set_icon(img)
pyglet.app.run()
os.system("1.py")
当我运行程序时,一切正常,但是宏太快了,我需要用任务管理器关闭程序。如果你想修改它,你可以,但它非常快而且不是很有效。也感谢您的评论。他们帮了我很多:)
推荐阅读
- xml - 删除标题标签,包括信封、正文等
- r - 在数据框中搜索“NA”条目
- python - TensorFlow 未使用所有系统内存
- windows - 如何控制 Windows 10 UWP App 的子窗口大小+位置
- sql-server - 监控何时创建数据库并接收电子邮件
- wordpress - 多个重定向 (301)
- javascript - 如何在 react-native-tab-view 中使用 renderScene 将道具传递给 FlatList?
- jquery - 如何根据内部文本末尾的数字对列表项进行排序?
- windows - 使用 PowerShell 验证注册表项
- sql - 在 Entity Framework Core 3.1 中调试 SqlException