Python程序只工作几秒钟,就会崩溃

2024-10-04 03:23:22 发布

您现在位置: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() 

谢谢你的帮助


Tags: textimportifonwindowwidthpygletcenter
1条回答
网友
1楼 · 发布于 2024-10-04 03:23:22

我解决了这个问题,意识到这个项目是不稳定的。 我是这样做的。 首先,我用这个代码创建了第二个文件,并将其命名为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")

当我运行程序时,一切正常,但宏太快,我需要使用任务管理器关闭程序。如果你想修改这个,你可以,但它非常快,不是很有效。也谢谢你的评论。他们帮了我很多:)

相关问题 更多 >