如何获得屏保信号?

baoyz 2009-01-22 03:14:39
我做了一个屏保程序。是“EXE”的。
就是没有挂到系统上,也就是说:每次启动都要像启动普通程序一样,或用热键启动。不能像WIN的屏保一样在一定的时间后自行启动。
问,有什么好方法,可以让程序自行启动,就像真正的屏保程序一样。或者有什么方法,能获得系统屏保信号,获得后让程序启动。
...全文
110 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gavin001 2009-02-04
  • 打赏
  • 举报
回复
给一个检测系统空闲时间的例子
LASTINPUTINFO lpi;
lpi.cbSize = sizeof(lpi);
GetLastInputInfo(&lpi);
DWORD dwIdleTime = (GetTickCount()- lpi.dwTime) / 1000;
if(dwIdleTime >300)//空闲时间到达300秒,启动屏保
{
::SystemParametersInfo(SPI_SETSCREENSAVEACTIVE,FALSE,0,0);
ShellExecute(NULL,"open","ScrProtect.scr","","", SW_SHOW );
}
else
{
::SystemParametersInfo(SPI_SETSCREENSAVEACTIVE,TRUE,0,0);
}
放在定时器里,每过一段时间判断一次
Gavin001 2009-02-04
  • 打赏
  • 举报
回复
最简单的办法
程序启动时
把你的屏保程序设置为系统默认屏保
程序退出后还原系统默认屏保
自己计算系统空闲时间也可以
都不难
zhuweiping2003 2009-02-04
  • 打赏
  • 举报
回复
happy new year

持续关注这个问题 帮你顶
baoyz 2009-02-04
  • 打赏
  • 举报
回复
新年好!

1、我自己做的程序开机自启动并常驻内存。平时是隐藏状态。
已完成。
2、程序需要随时随意的“显示”。就像打开一个程序一样。我想什么时候打开,就什么时候打开。
已完成。
3、等系统屏保时,不用系统自带的屏保程序,而是触发我做的程序。
实现的方法要么是监视系统输入设备的输入,并计时。
要么就是监视系统屏保程序的状态,自动切换到我的程序上。
要么就是我还没想到的其他的方法了。
现在就是这一步没做好。
如果改文件扩展名为“scr”,那么由于系统启动时已开启并“隐藏”,后来即使屏保计时到了,也不能“显示”出来。
  • 打赏
  • 举报
回复
不明白你的意思?你把你的需求说详细一点?
baoyz 2009-01-23
  • 打赏
  • 举报
回复
这样是可以,问题是:
要求这个程序可以随时启动并随时停止。如果改名的话,就必须等待系统计时了。
  • 打赏
  • 举报
回复
把你的程序扩展名改为"scr",然后把他放到系统system32目录下,你就可以在设屏幕保护程序的地方选择你的程序了.

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧