鱼C论坛

 找回密码
 立即注册
查看: 2052|回复: 6

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

[复制链接]
发表于 2023-3-26 16:36:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
目前只能傻傻的让滑鼠一直移动来防止电脑因为过久没动作而被锁定
不知道有没有用命令的方式来达到暂时关闭
与重新启动萤幕保护的启动?
最佳答案
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。有些操作系统可能需要管理员权限。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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。有些操作系统可能需要管理员权限。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢帮忙.
请问isdkz大:
如果我想把它做成一个.exe档案
由"按键精灵"脚本中来调用这个disable_screensaver.exe
跟enable_screensaver.exe档案
所以这样不需要timeout的话
应该怎么改写呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-3-27 07:10:08 From FishC Mobile | 显示全部楼层
fdfanmo 发表于 2023-3-26 19:59
谢谢帮忙.
请问isdkz大:
如果我想把它做成一个.exe档案

按键精灵是你自己写的吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-30 19:42:12 | 显示全部楼层
wp231957 发表于 2023-3-27 07:10
按键精灵是你自己写的吗

對啊~是我自己寫的~
而且按键精灵没办法直接禁止或是更改萤幕保护程式.
所以我才想说我用py写好以后打包成一个exe档案
在用按键精灵去调用这个exe档案.
这样或许就可以达到我要的目的了.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-31 09:36:31 | 显示全部楼层
关闭电脑的屏保 多好啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-31 15:52:10 From FishC Mobile | 显示全部楼层
fdfanmo 发表于 2023-3-30 19:42
對啊~是我自己寫的~
而且按键精灵没办法直接禁止或是更改萤幕保护程式.
所以我才想说我用py写好以后打 ...

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

因为屏保涉及到不少事,所以即使是windows也都不通用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 21:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表