笔记本都自带有fn+ 什么什么按键可以做到一键熄灭显示器。Win10台式也能拥有吗!!!
方法一:
NirCmd
新建一个快捷方式,或者bat文件. 输入以下命令即可. 你可以在快捷方式属性里设置快捷键.
nircmd.exe monitor off
方法二:
电脑win10 电源设置, 选择电源按钮设为"关闭显示器".
以后关机只能用开始菜单的关机. 不能用按电源按钮的方法了.
方法三:
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文件没效果。设置快捷键可细说吗?
推荐用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
下载个云日历,右键点击时间快捷操作就有。
谢谢,当时尝试下,目前已经找了一个锁屏软件。
写这种工具要注意:
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();