Win10一键关闭显示器的软件或方法

笔记本都自带有fn+ 什么什么按键可以做到一键熄灭显示器。Win10台式也能拥有吗!!!

1 Like

1 台式机?独立显示器上有物理开关吧

2 很多此类小工具可以设置快捷键 closeLCD下载 2.0.0.0 免安装版(一键关闭显示器)-一款公益环保软件,意在使用户更方-pc6下载站

1 Like

方法一:

NirCmd
新建一个快捷方式,或者bat文件. 输入以下命令即可. 你可以在快捷方式属性里设置快捷键.
nircmd.exe monitor off

方法二:

电脑win10 电源设置, 选择电源按钮设为"关闭显示器".
image

以后关机只能用开始菜单的关机. 不能用按电源按钮的方法了.

方法三:

    ahk   win+L 一键黑屏.
        #l::
        DllCall(“LockWorkStation”)
        Sleep, 1000
        SendMessage 0x112, 0xF170, 2,,Program Manager
        return

方法4: 类似nircmd, 但是不需要安装任何软件.

如果要快速休眠, 可以使用
rundll32.exe powrprof.dll,SetSuspendState Hibenate

如果是挂起, 就把最后的参数改为 Suspend

挂起比休眠恢复速度更快.

方法五:

Display Power Off Utility
这个程序在 SourceForge 就可以找到,下载压缩包,解压 doff.exe,双击就直接关闭显示器。如有需要,可以新建一个快捷方式,或者 bat 文件,输入以下命令即可,还可以在快捷方式属性里设置快捷键。
doff.exe /t

win7下一直在用这个工具:
2009-08-05 09:59 5,632 ShutDownScreen.exe

但有些时候 黑屏后立即恢复正常显示,然后即使几分钟没操作本该(因为win的节能设置)自动关屏也不会关了。。。。

方法一没成功,做了bat文件没效果。设置快捷键可细说吗?

找到 nircmd.exe 发送一个快捷方式到桌面。

在快捷方式的属性栏修改

目标: 后面加monitor off 参数。

快捷键: 自己按键输入

确定即可

推荐用monitor async_off替代monitor off,后者在部分电脑上有概率后台nircmd无法自动退出

screen off软件可以直接实现,绿色软件,无需安装

ahk代码,点击运行

#SingleInstance, Force
#KeyHistory, 0
SetBatchLines, -1
ListLines, Off
SendMode Input ; Forces Send and SendRaw to use SendInput buffering for speed.
SetTitleMatchMode, 3 ; A window's title must exactly match WinTitle to be a match.
SetWorkingDir, %A_ScriptDir%
SplitPath, A_ScriptName, , , , thisscriptname
#MaxThreadsPerHotkey, 1 ; no re-entrant hotkey handling
; DetectHiddenWindows, On
; SetWinDelay, -1 ; Remove short delay done automatically after every windowing command except IfWinActive and IfWinExist
; SetKeyDelay, -1, -1 ; Remove short delay done automatically after every keystroke sent by Send or ControlSend
; SetMouseDelay, -1 ; Remove short delay done automatically after Click and MouseMove/Click/Drag
#SingleInstance, Force
SendMode Input
SetWorkingDir, %A_ScriptDir%


run, rundll32.exe powrprof.dll `,SetSuspendState 0`,1`,0

下载个云日历,右键点击时间快捷操作就有。

谢谢,当时尝试下,目前已经找了一个锁屏软件。

用注册表实现桌面右键一键关闭:
桌面右键效果

注册表下载:https://wwz.lanzouq.com/iX1mR03qacmj

1 Like

写这种工具要注意:
1、关闭显示器要有一个延时,因为你鼠标可能还在动,刚关闭又被唤醒了。
2、用 PostMessage 不要用 SendMessage

用 aardio 写个例子:

import win.ui;
/*DSG{{*/
var winform = win.form(text="关闭显示器";right=757;bottom=467)
winform.add(
button={cls="button";text="关闭显示器";left=414;top=273;right=639;bottom=343;z=1}
)
/*}}*/

winform.button.oncommand = function(id,event){
    winform.setTimeout( 
        function(){ 
            ::User32.PostMessage(0xFFFF,0x112,0xF170,2);
        },200 
    )	
}

winform.show(); 
win.loopMessage();

昨天想关显示器,又搜到这里来了。这个注册表方案挺好的,不过有两个缺点。1是用send不是post,每次用完后台会残留一个conhost进程。2是没有延迟2秒,容易自己碰到鼠标又退出。我前面自己改了下,代码如下。

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Atmonitor]
"MUIVerb"="关闭显示器(&M)"
"Position"="Bottom"
"icon"="imageres.dll,193"

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Atmonitor\command]
@="PowerShell -windowstyle hidden -command \"Start-Sleep 2;(Add-Type -MemberDefinition \"\\\"[DllImport(\\\"\\\"user32.dll\\\"\\\")]`npublic static extern int PostMessage(int hWnd, int hMsg, int wParam, int lParam);\"\\\" -Name \\\"Win32PostMessage\\\" -Namespace Win32Functions -PassThru)::PostMessage(0xffff, 0x0112, 0xF170, 2)\""


最简单的方式,是给显示器们一个单独带开关的电源接线板。

延时几秒只是缓解,没法彻底关屏。
可能关掉又亮了,或者过几分钟,过十分钟 …… 又自动亮了,还不一定每次都遇到。

彻底关屏的方法:
1、弄个定时器持续发送关屏消息。
2、关屏同时创建一个全屏的窗口,挡在所有窗口前面。
窗口接收到指定的按键后亮屏,清除定时器。

用 aardio 写个例子:

import win.ui;
/*DSG{{*/
var winform = win.form(text="暴力关屏";bgcolor=0)
/*}}*/

winform.timerId = winform.setInterval( 
	function(){
		 ::User32.PostMessage(0xFFFF,0x112, 0xF170,2);
	},500 
)

winform.onMouseDown  = function(){
	winform.clearInterval(	winform.timerId  );
	::User32.PostMessage(0xFFFF,0x112, 0xF170,-1);
	winform.close();
}

winform.fullscreen();
win.setTopmost(winform.hwnd);
win.loopMessage();