无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 3050|回复: 30
打印 上一主题 下一主题

[已解决] 【已解决】这.ahk代码是关闭显示器 还是 使屏幕变黑?谢谢

[复制链接]
跳转到指定楼层
1#
发表于 2023-6-12 17:33:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yyz2191958 于 2023-6-23 20:52 编辑

已解决:
实测,屏幕变黑(代码动作的时候),整个电脑功率减少 17W

**************************************************
亮屏37W,黑屏20W,关机不断220V~5W。

*************************************************

3分钟不动关闭屏幕(wcs——很好).rar

604 Bytes, 下载次数: 20, 下载积分: 无忧币 -2

关闭显示器(好).rar

253.79 KB, 下载次数: 45, 下载积分: 无忧币 -2

2#
发表于 2023-6-12 18:10:06 | 只看该作者
这是限制显卡输出的,不是操作显示器的

https://learn.microsoft.com/en-u ... enurc/wm-syscommand


点评

就是说:不能够省电吗?谢谢  详情 回复 发表于 2023-6-12 19:10

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5 就是不能够省电吗?谢谢

查看全部评分

回复

使用道具 举报

3#
发表于 2023-6-12 18:26:35 | 只看该作者
2楼的资料很有用啊

难怪我用这个代码,显示器黑了之后会进入低耗能模式,微亮30秒才真的变黑

点评

可惜我不懂英文  详情 回复 发表于 2023-6-12 19:31

评分

参与人数 1无忧币 +2 收起 理由
yyz2191958 + 2 可惜我不懂英文

查看全部评分

回复

使用道具 举报

4#
 楼主| 发表于 2023-6-12 19:10:07 | 只看该作者
527104427 发表于 2023-6-12 18:10
这是限制显卡输出的,不是操作显示器的

https://learn.microsoft.com/en-us/windows/win32/menurc/wm-sy ...

就是说:不能够省电吗?谢谢

点评

把网址中en-us改成zh-cn即可显示中文网页。限制显卡功率应该就是省电模式吧 [attachimg]527959[/attachimg]  详情 回复 发表于 2023-6-12 19:30
回复

使用道具 举报

5#
发表于 2023-6-12 19:30:24 | 只看该作者
yyz2191958 发表于 2023-6-12 19:10
就是说:不能够省电吗?谢谢

把网址中en-us改成zh-cn即可显示中文网页。限制显卡功率应该就是省电模式吧

点评

再次感谢  详情 回复 发表于 2023-6-12 21:58
回复

使用道具 举报

6#
 楼主| 发表于 2023-6-12 19:31:13 | 只看该作者
kli 发表于 2023-6-12 18:26
2楼的资料很有用啊

难怪我用这个代码,显示器黑了之后会进入低耗能模式,微亮30秒才真的变黑

可惜我不懂英文
回复

使用道具 举报

7#
发表于 2023-6-12 21:47:58 | 只看该作者
附上我常用的代码给大家参考

Shift + F1:萤幕待机
Shift + F2:萤幕关机


  1. #SingleInstance Force
  2. #NoEnv

  3. +F1::
  4.   Sleep 100
  5.   SendMessage 0x112, 0xF170, 2, , Program Manager
  6. Return

  7. +F2::
  8.   LCD_PowerOFF()       
  9. Return

  10. LCD_PowerOFF()
  11. {
  12.   ; Step1:Find Monitor Handle

  13.   ; Initialize Monitor handle
  14.   hMon := DllCall("MonitorFromPoint"
  15.     , "int64", 0 ; point on monitor
  16.     , "uint", 1) ; flag to return primary monitor on failure
  17.    
  18.   ; Get Physical Monitor from handle
  19.   VarSetCapacity(Physical_Monitor, 8 + 256, 0)

  20.   DllCall("dxva2\GetPhysicalMonitorsFromHMONITOR"
  21.     , "int", hMon   ; monitor handle
  22.     , "uint", 1   ; monitor array size
  23.     , "int", &Physical_Monitor)   ; point to array with monitor

  24.   handle := NumGet(Physical_Monitor)

  25.   ; Step2:Change Power Mode
  26.   DllCall("dxva2\SetVCPFeature"
  27.     , "int", handle
  28.     , "char", 0xD6 ;VCP code for Power Mode
  29.     , "uint", 0x05)

  30.   ; Step3:Destroy Monitor Handle
  31.   DllCall("dxva2\DestroyPhysicalMonitor", "int", handle)
  32. }
复制代码

点评

是ahk代码吗? 我这里怎么不行(无反应)  详情 回复 发表于 2023-6-12 22:09
我研究一下 谢谢  详情 回复 发表于 2023-6-12 22:00

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5 很给力!

查看全部评分

回复

使用道具 举报

8#
 楼主| 发表于 2023-6-12 21:58:13 | 只看该作者
527104427 发表于 2023-6-12 19:30
把网址中en-us改成zh-cn即可显示中文网页。限制显卡功率应该就是省电模式吧

再次感谢
回复

使用道具 举报

9#
 楼主| 发表于 2023-6-12 22:00:10 | 只看该作者
absman1972 发表于 2023-6-12 21:47
附上我常用的代码给大家参考

Shift + F1:萤幕待机

我研究一下 谢谢
回复

使用道具 举报

10#
 楼主| 发表于 2023-6-12 22:09:04 | 只看该作者
本帖最后由 yyz2191958 于 2023-6-12 22:10 编辑
absman1972 发表于 2023-6-12 21:47
附上我常用的代码给大家参考

Shift + F1:萤幕待机

Shift + F2无反应
回复

使用道具 举报

11#
发表于 2023-6-12 22:25:09 | 只看该作者
本帖最后由 absman1972 于 2023-6-12 22:26 编辑

我给的代码是常驻型,适合在一般的系统下使用

刚刚又重看了你代码
猜测你想做成小程序,可以设定秒数后关机

如果是这样
请把 LCD_PowerOFF() 的内容(16~40行) 覆盖取代原始代码中的
SendMessage, 0x112, 0xF170, 2,, Program Manager

即把原来的待机换成关机

点评

待机换成关机————不是电脑关机吧? 我其实需要的是:选定它----回车————就关闭显示器(节能)  详情 回复 发表于 2023-6-12 22:33
回复

使用道具 举报

12#
 楼主| 发表于 2023-6-12 22:33:47 | 只看该作者
absman1972 发表于 2023-6-12 22:25
我给的代码是常驻型,适合在一般的系统下使用

刚刚又重看了你代码

待机换成关机————不是电脑关机吧?

我其实需要的是:选定它----回车————就关闭显示器(节能)

点评

那更简单,代码如下 使用 AutoHotKey 编译成执行档,执行就会关闭显示器了 请再试看看  详情 回复 发表于 2023-6-12 22:37
回复

使用道具 举报

13#
发表于 2023-6-12 22:37:20 | 只看该作者
yyz2191958 发表于 2023-6-12 22:33
待机换成关机————不是电脑关机吧?

我其实需要的是:选定它----回车————就关闭显示器(节能)

那更简单,代码如下
使用 AutoHotKey 编译成执行档,执行就会关闭显示器了
请再试看看


  1. #NoEnv
  2. #NoTrayIcon
  3. #SingleInstance force
  4. #Persistent

  5. ; Step1:Find Monitor Handle

  6. ; Initialize Monitor handle
  7. hMon := DllCall("MonitorFromPoint"
  8. , "int64", 0 ; point on monitor
  9. , "uint", 1) ; flag to return primary monitor on failure

  10. ; Get Physical Monitor from handle
  11. VarSetCapacity(Physical_Monitor, 8 + 256, 0)

  12. DllCall("dxva2\GetPhysicalMonitorsFromHMONITOR"
  13. , "int", hMon   ; monitor handle
  14. , "uint", 1   ; monitor array size
  15. , "int", &Physical_Monitor)   ; point to array with monitor

  16. handle := NumGet(Physical_Monitor)

  17. ; Step2:Change Power Mode
  18. DllCall("dxva2\SetVCPFeature"
  19. , "int", handle
  20. , "char", 0xD6 ;VCP code for Power Mode
  21. , "uint", 0x05)

  22. ; Step3:Destroy Monitor Handle
  23. DllCall("dxva2\DestroyPhysicalMonitor", "int", handle)

  24. ExitApp
复制代码

点评

选定---回车————无动作(看下也没有进程)  详情 回复 发表于 2023-6-12 22:48
我试一试先 谢谢  详情 回复 发表于 2023-6-12 22:43

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5 很给力!

查看全部评分

回复

使用道具 举报

14#
 楼主| 发表于 2023-6-12 22:43:53 | 只看该作者
absman1972 发表于 2023-6-12 22:37
那更简单,代码如下
使用 AutoHotKey 编译成执行档,执行就会关闭显示器了
请再试看看

我试一试先 谢谢
回复

使用道具 举报

15#
 楼主| 发表于 2023-6-12 22:48:36 | 只看该作者
absman1972 发表于 2023-6-12 22:37
那更简单,代码如下
使用 AutoHotKey 编译成执行档,执行就会关闭显示器了
请再试看看

选定---回车————无动作(看下也没有进程)

点评

你使用什么操作系统?一般系统还是 PE?  详情 回复 发表于 2023-6-12 22:56
回复

使用道具 举报

16#
发表于 2023-6-12 22:56:24 | 只看该作者
yyz2191958 发表于 2023-6-12 22:48
选定---回车————无动作(看下也没有进程)

你使用什么操作系统?一般系统还是 PE?
回复

使用道具 举报

17#
 楼主| 发表于 2023-6-12 22:57:12 | 只看该作者
PE(安装了ahk)

点评

我刚试了一下 常规系统下可以正常关闭显示器(电源灯熄灭,只能按电源键重开) PE 下确实没反应,原因不详 第三方程序很多,PE 下正常,不过都只能进入省电模式 即显示器变暗后亮节能灯,摇一下鼠标后会重新亮屏  详情 回复 发表于 2023-6-12 23:43
回复

使用道具 举报

18#
发表于 2023-6-12 23:43:02 | 只看该作者

我刚试了一下
常规系统下可以正常关闭显示器(电源灯熄灭,只能按电源键重开)
PE 下确实没反应,原因不详

第三方程序很多,PE 下正常,不过都只能进入省电模式
即显示器变暗后亮节能灯,摇一下鼠标后会重新亮屏
如果可以接受这种效果,可以考虑使用第三方程序






点评

非常感谢  详情 回复 发表于 2023-6-13 06:34
回复

使用道具 举报

19#
 楼主| 发表于 2023-6-13 06:34:04 | 只看该作者
absman1972 发表于 2023-6-12 23:43
我刚试了一下
常规系统下可以正常关闭显示器(电源灯熄灭,只能按电源键重开)
PE 下确实没反应,原因不 ...

非常感谢
回复

使用道具 举报

20#
发表于 2023-6-13 12:30:41 | 只看该作者
牛人啊

点评

来自网络哦  详情 回复 发表于 2023-6-13 12:57
回复

使用道具 举报

21#
 楼主| 发表于 2023-6-13 12:57:25 | 只看该作者

来自网络哦

点评

楼上的两个功能可以用PECMD实现: 1.屏幕待机: 2.屏幕关机:  详情 回复 发表于 2023-6-14 20:27
回复

使用道具 举报

22#
发表于 2023-6-14 20:27:32 | 只看该作者
本帖最后由 527104427 于 2023-8-9 11:19 编辑

楼上的两个功能可以用PECMD实现:

1.屏幕待机(pecmd 源码):https://pecmd.net/thread-546.htm

2.屏幕关机(pecmd 源码):https://pecmd.net/thread-547.htm


点评

试了一下: 1.屏幕待机————有效 2.屏幕关机————无效(没有反应) 再次感谢  详情 回复 发表于 2023-6-14 21:01
我试一试  详情 回复 发表于 2023-6-14 20:50

评分

参与人数 1无忧币 +5 收起 理由
yyz2191958 + 5 赞一个!

查看全部评分

回复

使用道具 举报

23#
 楼主| 发表于 2023-6-14 20:50:59 | 只看该作者
527104427 发表于 2023-6-14 20:27
楼上的两个功能可以用PECMD实现:

1.屏幕待机:

我试一试  谢谢
回复

使用道具 举报

24#
 楼主| 发表于 2023-6-14 21:01:11 | 只看该作者
527104427 发表于 2023-6-14 20:27
楼上的两个功能可以用PECMD实现:

1.屏幕待机:

试了一下:
1.屏幕待机————有效

2.屏幕关机————无效(没有反应)

再次感谢
回复

使用道具 举报

25#
发表于 2023-6-15 00:46:39 | 只看该作者
原先的 AHK 代码修正 DLL 路径后,已经可以正常呼叫 dxva2
不过在 dxva2\SetVCPFeature 阶段时仍然会失败
我查了一下,它是 透过 DDC/CI 通道来存取 VCP

我的显示器在常规系统下可以正常关闭(表示支援 DDC/CI)
但是在 PE 下其他步骤都正确,只有这个步骤失败

搜寻了一下,微软官网有提到不是所有显示器都支援这个功能
Intel 官网也有提到 DDC/CI 需要显示晶片驱动支援才行
但一般 PE 为了轻量化,一般只使用通用的驱动
因此即使显示器有支援,也可能因为驱动问题无法实现这个功能
除非愿意为了这个功能安装专属的显示驱动(常常比 PE 本身还大)

想来想去,只有「屏幕待机」是比较可行的方案

另外 527104427 网友提供的代码其实也是相同的做法
差别只在于使用 PECMD 来写代码
无法成功的原因,应该也是显示驱动的问题

点评

屏幕待机很好,谢谢  详情 回复 发表于 2023-6-15 06:26
回复

使用道具 举报

26#
 楼主| 发表于 2023-6-15 06:26:01 | 只看该作者
absman1972 发表于 2023-6-15 00:46
原先的 AHK 代码修正 DLL 路径后,已经可以正常呼叫 dxva2
不过在 dxva2\SetVCPFeature 阶段时仍然会失败
...

屏幕待机很好,谢谢

点评

屏幕待机的功能其实系统本身的电源计划设定就有支持 前提是相关注册表及文件没有短少 可以在注册表里预先配置,也可以在 PECMD.INI 加入设定 想折腾可以参考这个贴子 h ttp://bbs.wuyou.net/forum.php?mod=vie  详情 回复 发表于 2023-6-15 10:28
回复

使用道具 举报

27#
发表于 2023-6-15 10:28:43 | 只看该作者
yyz2191958 发表于 2023-6-15 06:26
屏幕待机很好,谢谢

屏幕待机的功能其实系统本身的电源计划设定就有支持
前提是相关注册表及文件没有短少

可以在注册表里预先配置,也可以在 PECMD.INI 加入设定
想折腾可以参考这个贴子
h ttp://bbs.wuyou.net/forum.php?mod=viewthread&tid=433888

但现在的方法也很好很实用

点评

已经很满意了 谢谢  详情 回复 发表于 2023-6-15 11:05
回复

使用道具 举报

28#
 楼主| 发表于 2023-6-15 11:05:44 | 只看该作者
absman1972 发表于 2023-6-15 10:28
屏幕待机的功能其实系统本身的电源计划设定就有支持
前提是相关注册表及文件没有短少

已经很满意了 谢谢

点评

一分钟无动作将屏幕待机:  详情 回复 发表于 2023-6-15 22:39
回复

使用道具 举报

29#
发表于 2023-6-15 22:39:47 | 只看该作者
本帖最后由 527104427 于 2023-8-9 11:17 编辑
yyz2191958 发表于 2023-6-15 11:05
已经很满意了 谢谢

一分钟无动作将屏幕待机(pecmd源码):  https://pecmd.net/thread-548.htm  

点评

成功了,再次感谢  详情 回复 发表于 2023-6-15 23:52
非常感谢  详情 回复 发表于 2023-6-15 23:45
回复

使用道具 举报

30#
 楼主| 发表于 2023-6-15 23:45:14 | 只看该作者
527104427 发表于 2023-6-15 22:39
一分钟无动作将屏幕待机:

非常感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-18 07:27

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表