window关闭显示屏软件。

基于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" \
         "联系作者:[email protected]"
    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()

实现后

程序界面如下:

window关闭显示屏软件。_第1张图片
目前测试的平台有:win10

32位exe可执行文件下载地址:

http://d0.ananas.chaoxing.com/download/601d664702c4124ea1510711bb0afaca?fn=Py_TurnOffLCD_x86.exe

(在32位平板封装的exe,所以向上兼容64位。)

后续更新:
有一个软件也可以实现,叫ScreenOff.exe (官网传送门)
window关闭显示屏软件。_第2张图片

如有错误,恭请请指教

如需转载请说明出处

你可能感兴趣的:(Python,python,window,gui,windows,tkinter)