Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何启动一个在Ubuntu(最好是Windows)中接受键盘输入的Python屏幕保护程序?_Python_Windows_Ubuntu_Screensaver - Fatal编程技术网

如何启动一个在Ubuntu(最好是Windows)中接受键盘输入的Python屏幕保护程序?

如何启动一个在Ubuntu(最好是Windows)中接受键盘输入的Python屏幕保护程序?,python,windows,ubuntu,screensaver,Python,Windows,Ubuntu,Screensaver,我正在用Python开发一个家庭使用的小应用程序。它应该作为幻灯片放映屏幕保护程序,但也作为一个原始的图像管理器。我已经介绍了幻灯片放映和图像管理器(我正在使用Tkinter),但是我还没有实现屏幕保护程序。因此,从命令行启动应用程序效果良好 我正在运行Ubuntu,由于我需要应用程序能够接受键盘输入,我认为我不能使用xscreensaver/gnome屏幕保护程序框架,因为它捕获所有内容并显示登录对话框。我很想在这里被证明是错的(在这么多年后回到xscreensaver会很好:) 我想到的解决

我正在用Python开发一个家庭使用的小应用程序。它应该作为幻灯片放映屏幕保护程序,但也作为一个原始的图像管理器。我已经介绍了幻灯片放映和图像管理器(我正在使用Tkinter),但是我还没有实现屏幕保护程序。因此,从命令行启动应用程序效果良好

我正在运行Ubuntu,由于我需要应用程序能够接受键盘输入,我认为我不能使用xscreensaver/gnome屏幕保护程序框架,因为它捕获所有内容并显示登录对话框。我很想在这里被证明是错的(在这么多年后回到xscreensaver会很好:)

我想到的解决方案是用它来检测用户空闲的时间,并自己管理屏幕保护程序。但是,找到另一个独立于平台的解决方案是非常理想的,因为我想与一些使用Windows的朋友共享这个程序

关于我的问题,那么:

  • 我能以某种方式使用xscreensaver吗 启动我的程序但避免xscreensaver 键盘操作

  • 有平台独立的吗 PyXSS的替代方案

  • 我将如何着手实现目标 Windows中的相同功能


  • 嗯,有一个pyhack,它允许你使用适用于Mac和Linux的xscreensaver。不确定pyhack模块,但xscreensaverhack允许您捕获键盘和鼠标事件


    我听说可能有一个用于Windows屏幕保护程序编程的python库。即使没有,也可以始终使用win32 python包附带的win32 API。Internet上的教程将告诉您为屏幕保护程序调用哪些api函数。不确定是否要使用pyopengl或类似的东西……

    嗯,有一个pyhack允许您使用适用于Mac和Linux的xscreensaver。不确定pyhack模块,但xscreensaverhack允许您捕获键盘和鼠标事件


    我听说可能有一个用于Windows屏幕保护程序编程的python库。即使没有,也可以始终使用win32 python包附带的win32 API。Internet上的教程将告诉您为屏幕保护程序调用哪些api函数。不确定是否要使用pyopengl或类似的东西……

    对于Windows,您只需创建一个可执行文件(例如使用
    py2exe
    ),然后将其从
    .exe
    重命名为
    .scr

    您可以右键单击该文件并选择“安装”,或者将其复制到(?)Windows/System32目录中,使其显示在屏幕保护程序列表中

    不过有一个假设:我认为最好只创建一个可执行文件,而不是常规的一堆文件(=依赖项)

    我使用此设置配置(对于
    py2exe
    )创建一个可执行文件:

    from distutils.core import setup
    import py2exe
    
    includes = []
    excludes = ['_gtkagg', '_tkagg', 'bsddb', 'curses', 'email', 'pywin.debugger',
                'pywin.debugger.dbgcon', 'pywin.dialogs', 'tcl',
                'Tkconstants', 'Tkinter','MSVCP90.dll']
    packages = []
    dll_excludes = ['libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll', 'tcl84.dll',
                    'tk84.dll']
    
    setup(
        options = {"py2exe": {"compressed": 2,
                              "optimize": 2,
                              "includes": includes,
                              "excludes": excludes,
                              "packages": packages,
                              "dll_excludes": dll_excludes,
                              "bundle_files": 1,
                              "dist_dir": "dist",
                              "xref": False,
                              "skip_archive": False,
                              "ascii": False,
                              "custom_boot_script": '',
                             }
                  },
        zipfile = None,
        windows=['main.py'] # <- the name of your code file
    )
    
    来自distutils.core导入设置
    导入py2exe
    包括=[]
    排除=[''u gtkagg','u tkagg','bsddb','curses','email','pywin.debugger',
    “pywin.debugger.dbgcon”、“pywin.dialogs”、“tcl”,
    'Tkconstants'、'Tkinter'、'MSVCP90.dll']
    软件包=[]
    dll_excludes=['libgdk-win32-2.0-0.dll','libgobject-2.0-0.dll','tcl84.dll',
    'tk84.dll']
    设置(
    选项={“py2exe”:{“compressed”:2,
    "优化":二,,
    “包括”:包括,
    “排除”:排除,
    “包”:包,
    “dll_排除”:dll_排除,
    “bundle_文件”:1,
    “dist_dir”:“dist”,
    “外部参照”:False,
    “跳过存档”:False,
    “ascii”:假,
    “自定义启动脚本”:“”,
    }
    },
    zipfile=无,
    
    windows=['main.py']#对于windows,您只需创建一个可执行文件(例如使用
    py2exe
    ),然后将其从
    .exe
    重命名为
    .scr

    您可以右键单击该文件并选择“安装”,或者将其复制到(?)Windows/System32目录中,使其显示在屏幕保护程序列表中

    不过有一个假设:我认为最好只创建一个可执行文件,而不是常规的一堆文件(=依赖项)

    我使用此设置配置(对于
    py2exe
    )创建一个可执行文件:

    from distutils.core import setup
    import py2exe
    
    includes = []
    excludes = ['_gtkagg', '_tkagg', 'bsddb', 'curses', 'email', 'pywin.debugger',
                'pywin.debugger.dbgcon', 'pywin.dialogs', 'tcl',
                'Tkconstants', 'Tkinter','MSVCP90.dll']
    packages = []
    dll_excludes = ['libgdk-win32-2.0-0.dll', 'libgobject-2.0-0.dll', 'tcl84.dll',
                    'tk84.dll']
    
    setup(
        options = {"py2exe": {"compressed": 2,
                              "optimize": 2,
                              "includes": includes,
                              "excludes": excludes,
                              "packages": packages,
                              "dll_excludes": dll_excludes,
                              "bundle_files": 1,
                              "dist_dir": "dist",
                              "xref": False,
                              "skip_archive": False,
                              "ascii": False,
                              "custom_boot_script": '',
                             }
                  },
        zipfile = None,
        windows=['main.py'] # <- the name of your code file
    )
    
    来自distutils.core导入设置
    导入py2exe
    包括=[]
    排除=[''u gtkagg','u tkagg','bsddb','curses','email','pywin.debugger',
    “pywin.debugger.dbgcon”、“pywin.dialogs”、“tcl”,
    'Tkconstants'、'Tkinter'、'MSVCP90.dll']
    软件包=[]
    dll_excludes=['libgdk-win32-2.0-0.dll','libgobject-2.0-0.dll','tcl84.dll',
    'tk84.dll']
    设置(
    选项={“py2exe”:{“compressed”:2,
    "优化":二,,
    “包括”:包括,
    “排除”:排除,
    “包”:包,
    “dll_排除”:dll_排除,
    “bundle_文件”:1,
    “dist_dir”:“dist”,
    “外部参照”:False,
    “跳过存档”:False,
    “ascii”:假,
    “自定义启动脚本”:“”,
    }
    },
    zipfile=无,
    
    windows=['main.py']#谢谢!最后一个答案:)将研究pyhack!这里是一个用于windows的python屏幕保护程序模块:谢谢!最后一个答案:)将研究pyhack!以下是适用于windows的python屏幕保护程序模块: