fdfanmo 发表于 2023-3-26 16:36:07

请问python如何在执行脚本时用语法暂停萤幕保护的启动?

目前只能傻傻的让滑鼠一直移动来防止电脑因为过久没动作而被锁定
不知道有没有用命令的方式来达到暂时关闭
与重新启动萤幕保护的启动?

isdkz 发表于 2023-3-26 16:40:12

在Python中,我们可以使用ctypes库来调用操作系统的底层API来实现暂停和恢复屏幕保护功能。以下是一个简单的示例,适用于Windows系统:

import ctypes
import time

# 定义底层API函数
SPI_SETSCREENSAVETIMEOUT = 0x0015
SPI_GETSCREENSAVETIMEOUT = 0x000E

user32 = ctypes.windll.user32
SystemParametersInfo = user32.SystemParametersInfoW

def disable_screensaver():
    timeout = ctypes.c_int()
    SystemParametersInfo(SPI_GETSCREENSAVETIMEOUT, 0, ctypes.byref(timeout), 0)
    SystemParametersInfo(SPI_SETSCREENSAVETIMEOUT, 0, None, 0)
    return timeout.value

def enable_screensaver(timeout):
    SystemParametersInfo(SPI_SETSCREENSAVETIMEOUT, timeout, None, 0)

# 在这里执行你的代码
timeout = disable_screensaver()

# 执行你的代码
time.sleep(10)

enable_screensaver(timeout)


请注意,这个示例是针对Windows系统的。在其他操作系统上,你可能需要使用不同的库和方法。


对于macOS系统,你可以使用osascript来实现:

import subprocess

def disable_screensaver_macos():
    subprocess.call("caffeinate -u -t 1", shell=True)

def enable_screensaver_macos():
    subprocess.call("killall caffeinate", shell=True)

# 在这里执行你的代码
disable_screensaver_macos()

# 执行你的代码
time.sleep(10)

enable_screensaver_macos()


请注意,在使用这些代码之前,确保你的操作系统允许调用这些底层API。有些操作系统可能需要管理员权限。

fdfanmo 发表于 2023-3-26 19:59:17

isdkz 发表于 2023-3-26 16:40
在Python中,我们可以使用ctypes库来调用操作系统的底层API来实现暂停和恢复屏幕保护功能。以下是一个简单 ...

谢谢帮忙.
请问isdkz大:
如果我想把它做成一个.exe档案
由"按键精灵"脚本中来调用这个disable_screensaver.exe
跟enable_screensaver.exe档案
所以这样不需要timeout的话
应该怎么改写呢?

wp231957 发表于 2023-3-27 07:10:08

fdfanmo 发表于 2023-3-26 19:59
谢谢帮忙.
请问isdkz大:
如果我想把它做成一个.exe档案


按键精灵是你自己写的吗

fdfanmo 发表于 2023-3-30 19:42:12

wp231957 发表于 2023-3-27 07:10
按键精灵是你自己写的吗

對啊~是我自己寫的~
而且按键精灵没办法直接禁止或是更改萤幕保护程式.
所以我才想说我用py写好以后打包成一个exe档案
在用按键精灵去调用这个exe档案.
这样或许就可以达到我要的目的了.

wp231957 发表于 2023-3-31 09:36:31

关闭电脑的屏保 多好啊

wp231957 发表于 2023-3-31 15:52:10

fdfanmo 发表于 2023-3-30 19:42
對啊~是我自己寫的~
而且按键精灵没办法直接禁止或是更改萤幕保护程式.
所以我才想说我用py写好以后打 ...

如果你的工作环境只是一台电脑的话,还是直接把屏保啊,休眠啊统统都关掉

因为屏保涉及到不少事,所以即使是windows也都不通用
页: [1]
查看完整版本: 请问python如何在执行脚本时用语法暂停萤幕保护的启动?