基于python的thinter编写的window关闭显示屏软件。
由于平板电脑没有关闭显示器的功能,电源键只能进行睡眠。放音乐、下载东西亮则屏幕太耗电,也不舒服。故寻找了一下api。用python编写了一个py程序,然后用pyinstaller进行封装py成为了exe可执行文件,以下是朋友的源码。
from ctypes import windll
import tkinter as tk # 使用Tkinter前需要先导入
import tkinter.messagebox
#关闭显示屏的api函数
def screenOff():
#关闭显示器的参数
HWND_BROADCAST = 0xffff
WM_SYSCOMMAND = 0x0112
SC_MONITORPOWER = 0xF170
MonitorPowerOff = 2
SW_SHOW = 5
windll.user32.PostMessageW(HWND_BROADCAST, WM_SYSCOMMAND,
SC_MONITORPOWER, MonitorPowerOff)
shell32 = windll.LoadLibrary("shell32.dll")
shell32.ShellExecuteW(None, 'open', 'rundll32.exe',
'USER32', '', SW_SHOW)
#关于本软件
def about():
text="软件基于python实现\n" \
"可以为没有息屏快捷键的电脑快速息屏。\n" \
"作者:Donglinanshan\n" \
"联系作者:liang_zhi_bo@foxmail.com"
tkinter.messagebox.showinfo(title='关于py息屏助手', message=text)
#软件设置
def seting():
#隐藏主窗口
global win_root
win_root.withdraw()
#打开子窗口
win2 = tkinter.Tk()
win2.title('py息屏助手设置')
win2.geometry('280x160-0-0')
win2.resizable(0, 0)
# 提示标签
lab = tk.Label(win2, bg='yellow', width=20, text=text)#设置lab的参数
lab.place(x=80, y=65)#设置lab位置
#设置改变
def change():
global text
f=open(r"C:\Users\Public\息屏助手.data","w")
if text == "目前:先打开软件,后息屏":
f.write("先:显示屏,后关闭:GUI界面")
text = "目前:先息屏,后打开软件"
else:
f.write("先:GUI界面,后关闭:显示屏")
text = "目前:先打开软件,后息屏"
lab.config(text=text)
bt4 = tkinter.Button(win2, text='是否关闭显示屏优先', bg='#c3c3c3', font=('微软雅黑', 11),
width=20, height=1, command=change)#设置bt的参数
bt4.place(x=55, y=20)#bt设置位置
#如果关闭子窗口,则重新显示主窗口
def on_closing():
win_root.wm_deiconify()
win2.destroy()
#监视子窗口是否关闭,关闭则调用on_closing()
win2.protocol("WM_DELETE_WINDOW",on_closing)
# 循环展示子窗口
win2.mainloop()
if __name__ == "__main__":
#创建记录数据文件
try:
with open(r"C:\Users\Public\息屏助手.data","r") as f:
if f.read() == "先:GUI界面,后关闭:显示屏":
text = "目前:先打开软件,后息屏"
else:
text = "目前:先息屏,后打开软件"
screenOff()
except:
with open(r"C:\Users\Public\息屏助手.data","w") as f:
f.write("先:GUI界面,后关闭:显示屏")
text = "目前:先打开软件,后息屏"
#主窗口基本参数
win_root = tkinter.Tk()
win_root.title('py息屏助手 v1.0.1')
win_root.geometry('280x160-0-0')
win_root.resizable(0, 0)
# 关闭显示屏按键
bt1 = tkinter.Button(win_root, text='关闭显示屏', bg='#c3c3c3', font=('微软雅黑', 15),
width=15, height=2, command=screenOff)#设置bt的参数
bt1.place(x=50, y=5)#bt设置位置
# 助手设置按键
bt2 = tkinter.Button(win_root, text='助手设置', bg='#c3c3c3', font=('微软雅黑', 10),
width=13, height=1, command=seting)
bt2.place(x=20, y=85)
#关于软件按键
bt3 = tkinter.Button(win_root, text='关于软件', bg='#c3c3c3', font=('微软雅黑', 10),
width=13, height=1, command=about)
bt3.place(x=150, y=85)
#循环窗口
win_root.mainloop()
实现后
程序界面如下:
目前测试的平台有:win10
32位exe可执行文件下载地址:
http://d0.ananas.chaoxing.com/download/601d664702c4124ea1510711bb0afaca?fn=Py_TurnOffLCD_x86.exe
(在32位平板封装的exe,所以向上兼容64位。)
后续更新:
有一个软件也可以实现,叫ScreenOff.exe (官网传送门)
如有错误,恭请请指教
如需转载请说明出处