![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-10-31 14:55 |
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » dos软件关闭显示器 |
| 可打印版本 2,422 / 13 |
| 第1楼 alionlian | 发表于 2006-04-07 22:18 |
| 新手上路 发帖 2 积分 8 | |
|
dos软件关闭显示器 windows有省电模式,长时间不用可以自动关闭显示器。那么dos行不行呢?最好能用tc实现。
我找到一个dpmsave.exe,一运行行它就会关闭显示器,按任意键打开显示器。不知如何实现。 |
|
| 第2楼 alionlian | 发表于 2006-04-09 16:50 |
| 新手上路 发帖 2 积分 8 | |
|
dos软件关闭显示器 高手都哪去了?
|
|
| 第3楼 yk141 | 发表于 2006-04-10 23:35 |
| 初级用户 发帖 21 积分 46 来自 中华人民共和国 | |
|
大不大,你反江编看下不就知道了?
好象是调用INT 10H实现的,具体我忘了! |
|
| 第4楼 JonePeng | 发表于 2006-04-11 22:37 |
| 金牌会员 发帖 1,883 积分 4,562 来自 广东广州 | |
|
6年前我就编过这样的程序,调用 INT 10H 的 4F10H 子中断。
[ Last edited by JonePeng on 2006-4-11 at 22:39 ] |
|
| 第5楼 xuantian | 发表于 2006-04-16 23:43 |
| 高级用户 发帖 282 积分 587 | |
|
多事
用手按还少敲两下键盘.... |
|
| 第6楼 asbai | 发表于 2006-04-17 00:17 |
| 高级用户 发帖 252 积分 653 | |
Originally posted by xuantian at 2006-4-16 23:43: 有点道理,反正要每次手动执行这个程序,不如直接按显示器电源钮,呵呵 |
|
| 第7楼 JonePeng | 发表于 2006-04-21 00:07 |
| 金牌会员 发帖 1,883 积分 4,562 来自 广东广州 | |
|
Re xuantian &asbai:
你们的想法比较片面。 要是碰到显示器的按钮失灵或坏掉的情况怎么办? 我编的这个小程序就是为了解决我以前用的二手显示器按钮的问题。 另外,在Windows下还可以创建该程序的快捷方式,放在任务栏的快速启动栏上,这样点击一下这个图标就免得去按显示器开关了。 |
|
| 第8楼 qingfen | 发表于 2006-04-23 14:47 |
| 初级用户 发帖 22 积分 70 | |
|
能否用端口读写的方式来编写呢????
|
|
| 第9楼 waynebeat | 发表于 2006-05-17 14:51 |
| 初级用户 发帖 28 积分 84 | |
|
能不能让显示器
开机时就直接开呀 我的显示器按扭坏了 关了就开不开了 |
|
| 第10楼 JonePeng | 发表于 2006-05-18 10:57 |
| 金牌会员 发帖 1,883 积分 4,562 来自 广东广州 | |
Originally posted by waynebeat at 2006-5-17 14:51: 呵呵,那就在关机后不要关显示器咯 |
|
| 第11楼 lqsoft | 发表于 2006-05-24 02:34 |
| 新手上路 发帖 1 积分 2 | |
|
void crtoff()/*关闭显示器*/
{ int crtflag;/*显示器是否支持节能模式的标志*/ union REGS inregs,outregs; inregs.x.ax=0x4f10; inregs.x.bx=0; int86(0x10,&inregs,&outregs); if(outregs.h.al==0x4f)/*如果显示器支持节能模式则关闭显示器*/ { inregs.x.ax=0x4f10; inregs.x.bx=0x0201; int86(0x10,&inregs,&outregs); inregs.x.ax=0x4f10; inregs.x.bx=0x0301; int86(0x10,&inregs,&outregs); crtflag=1; } else /*否则禁止显示器刷新*/ { inregs.x.ax=0x1201; inregs.h.bl=0x36; int86(0x10,&inregs,&outregs); crtflag=0; } while(bioskey(1)==0&&Minf==0) /*等待键盘或鼠标的信息来开启显示器*/ GetMouseState(&Minf); if(crtflag)/*如果显示器支持节能模式则开启显示器*/ { inregs.x.ax=0x4f10; inregs.x.bx=0x1; int86(0x10,&inregs,&outregs); } else/*否则允许显示器刷新*/ { inregs.x.ax=0x1200; inregs.h.bl=0x36; int86(0x10,&inregs,&outregs); } } |
|
| 第12楼 xiongwei2624 | 发表于 2006-06-30 14:47 |
| 初级用户 发帖 44 积分 96 来自 深圳 | |
|
汇编不怎么熟悉哦!
|
|
| 第13楼 scumyang | 发表于 2006-07-01 16:52 |
| 初级用户 发帖 9 积分 20 | |
|
#define DPMS_ON 0
#define DPMS_WAIT 1 #define DPMS_SUSPEND 2 #define DPMS_OFF 4 //--------------------------------------------------------------------------- // Set DPMS status // // 设置显示器节能状态 //--------------------------------------------------------------------------- BYTE yana_SetDPMSStatus(BYTE Act) { union REGS r; r.w.ax = 0x4F10; r.h.bl = 1; r.h.bh = Act; int386(0x10, &r, &r); return (r.h.al == 0x4F); // If AL != 4Fh, return FALSE } |
|
| 第14楼 bd123456789 | 发表于 2008-01-11 22:06 |
| 中级用户 发帖 216 积分 360 | |
|
我怎么没办法测试呀! 上述代码有什么办法测试一下?
抱歉实在是不太懂C语言编程,有了代码也不知道怎么测试! |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |