有没有一种方法可以完全阻止用户表单退出pygame窗口?

时间:2020-11-10 04:10:08

标签: python pygame

我想完全禁止用户关闭x键以外的Pygame窗口。目前,我能够阻止用户关闭它,但无法阻止用户打开另一个与其重叠的窗口(按Windows键->打开chrome,与Pygame窗口重叠)。

import sys
import pygame
from pygame.locals import *
pygame.init()
infoObject = pygame.display.Info()
screen = pygame.display.set_mode((infoObject.current_w, infoObject.current_h), flags=pygame.NOFRAME)
while True:
    screen.fill((0, 0, 0))
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_x:
                pygame.quit()
                sys.exit()
        if event.type == QUIT:
            pass
    pygame.display.flip()

2 个答案:

答案 0 :(得分:2)

我们没有针对此任务的完整解决方案。

您可以通过将显示模式设置为NOFRAME(您已经使用过)来使标题消失(pygame.display.set_mode(flags = pygame.NOFRAME),但这对于仅停止关闭按钮来说是过大的事情

尽管任何具有最低计算机知识的用户都将启动任务管理器并杀死python.exe:-(

有几种方法可以通过Windows中的注册表,图像文件执行选项等等来禁用任务管理器,但是您的游戏脚本几乎无法在具有管理员权限的情况下运行(由于UAC的困扰)

答案 1 :(得分:0)

为此,您可以将这段代码添加到pygame.display.set_mode()中: pygame.display.set_mode(..., flags=pygame.NOFRAME)。现在,带有“ x”按钮的栏将消失。

请注意,如果您决定进行此更改,则将无法再移动游戏窗口。 (除非您将其改回)。