社区
Windows SDK/API
帖子详情
怎么用程序自动结束屏保!
cjfzy
2004-10-14 02:40:37
我编了一个程序,收到别的机器传来的消息会相应,并在界面上显示信息;
现在遇到一个问题,机器长期待机,会进入屏保,我的程序弹出的信息不能被看到,
我想在程序收到信息时结束屏保,请问在程序中怎么能结束屏保?
...全文
482
16
打赏
收藏
怎么用程序自动结束屏保!
我编了一个程序,收到别的机器传来的消息会相应,并在界面上显示信息; 现在遇到一个问题,机器长期待机,会进入屏保,我的程序弹出的信息不能被看到, 我想在程序收到信息时结束屏保,请问在程序中怎么能结束屏保?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
masterjames
2004-10-19
打赏
举报
回复
支持以下
bat800
2004-10-18
打赏
举报
回复
是吗,那就动一动吧!!
智商无下限
2004-10-18
打赏
举报
回复
靠!还没揭帖呢?
动一动就行了
我都实验过了!
SetCursorPos(0,0);
sowine
2004-10-18
打赏
举报
回复
那就动一动吧。。。。。
纯冰糖
2004-10-18
打赏
举报
回复
估计得写个消息吧
netrobo
2004-10-18
打赏
举报
回复
luke5678(奇异)解释得很详细。
但我觉得应该还有别的办法吧。
子秦1117
2004-10-18
打赏
举报
回复
动一下鼠标,同意
baointoo1980
2004-10-18
打赏
举报
回复
学习!
ztenv
2004-10-18
打赏
举报
回复
学习ing
beyondtkl
2004-10-15
打赏
举报
回复
呵呵 动一动应该就可以吧
masterjames
2004-10-14
打赏
举报
回复
SetCursorPos(0,0);
智商无下限
2004-10-14
打赏
举报
回复
随便模拟一个鼠标移动的状态就行了,比如
SetCursorPos(0,0);
hottey
2004-10-14
打赏
举报
回复
是啊,随便一个响应事件我想都能够关闭屏保吧:)
pandarus
2004-10-14
打赏
举报
回复
学习
luke5678
2004-10-14
打赏
举报
回复
转贴:
摘要
应用程序在某些时候需要终止一个已启动的屏幕保护程序。在Windows 3.1 或 Windows 95中,传递一个 “WM_CLOSE”的消息给正在运行的屏幕保护窗口就能轻而易举的结束屏保,
如下所示:
PostMessage (GetActiveWindow(), WM_CLOSE, 0, 0L);
然而,Windows NT引入了分离桌面的概念,应用程序和屏幕保护程序能分别在两个桌面上运行。 这使得在Windows NT 或 Windows 2000下关闭屏保要稍难一些 。
更多内容
在Windows NT 或 Windows 2000下,要得到正在运行的屏保窗口的句柄不象在Windows 3.1 和 Windows 95下那样简单。在应用程序中调用GetForegroundWindow() 将返回空值,
因为屏保和应用程序运行在不同的桌面上。同样,调用FindWindow ("WindowsScreenSaverClass", NULL) 来判断屏保是否正在运行也不起作用。
只有先取得屏保程序所在桌面的句柄,列举该桌面上的窗口,之后再传递“WM_CLOSE”的消息给屏保窗口,这样才能关闭屏保。
下面的代码演示了如何做到这一点。需要指出的是如果设置了屏保口令,下面的代码执行时将调出要求输入口令的对话框,提示用户输入口令,这样一来实际上就终止了屏保。
BOOL CALLBACK KillScreenSaverFunc(HWND hwnd, LPARAM lParam)
{
if(IsWindowVisible(hwnd))
PostMessage(hwnd, WM_CLOSE, 0, 0);
return TRUE;
}
HDESK hdesk;
hdesk = OpenDesktop(TEXT("Screen-saver"),
0,
FALSE,
DESKTOP_READOBJECTS | DESKTOP_WRITEOBJECTS);
if (hdesk)
{
EnumDesktopWindows(hdesk, KillScreenSaverFunc, 0);
CloseDesktop(hdesk);
}
注意,象上面所说的终止一个正在运行的屏保和完全禁止屏保的执行是不同的,在那种情况下,即使过了指定的等待时间屏保也不会再度运行了。
用下面的方法是很容易做到这一点的:
SystemParametersInfo( SPI_SETSCREENSAVEACTIVE,
FALSE,
0,
SPIF_SENDWININICHANGE
);
这一方法也能成功的关闭正在运行的屏保。不过,你将遇到一个问题,那就是系统将不再启动屏幕保护程序除非用户移动鼠标或按下键盘。
如果你需要再度启动屏保,就必须重新初始化屏保的等待时间。要做到这一点你可以:
调用 SystemParametersInfo( SPI_SETSCREENSAVEACTIVE, TRUE, 0, SPIF_SENDWININICHANGE).
或者
用SetCursorPos()来模拟用户输入。
这两种方法都将促使系统重新启动屏保等待时间计数器。
gujianhua
2004-10-14
打赏
举报
回复
我记得好象是向windows发送一个WM_Active消息就能关闭屏保了
OpenCV实现
屏保
程序
智能控制
OpenCV实现
屏保
智能控制 by 郭世龙 介 绍 通常我们
结束
屏幕保护
程序
的方式是晃动鼠标或敲击键盘,有没有不动手的方法呢?比如说声音,最好是我们坐到到电脑前就
自动
结束
屏保
。这篇文章将介绍利用摄像头来实现
自动
控制屏幕保护的方法。原理上很简单,通过检测摄像头捕捉到的是否人脸,如果是则判断
屏保
程序
是否正在运行,如果是则
结束
屏保
程序
。屏幕保护
程序
的控制方法我在前面的文章 中已经介
Windows 7心形
屏保
安装与应用指南
本文还有配套的精品资源,点击获取 简介:在Windows 7系统中,用户可以通过安装第三方
屏保
程序
来个性化电脑屏幕保护,例如"心形
屏保
"。此
屏保
以心形气泡动画为特色,不仅美化视觉效果,还能防止显示器老化。本文提供了一步一步的安装指南,并强调了安全下载的重要性以及升级操作系统的重要性,以确保计算机的安全。 1. Windows 7个性化
屏保
安装 Windows...
啥,手动
屏保
!没听说过啊!?
程序
是这样的: msgbox"欢迎使用手动
屏保
程序
。" msgbox"请选择您想要的
屏保
。" d=inputbox("小气泡(物理)请输1。梦幻线条(1)请输2。梦幻线条(2)(效果上和1有些不同)请输3。黑屏
屏保
请输4。3d文字
屏保
(文字为windows 7,或你设置的自定义文字)请输5。") msgbox"选择成功,按确定后放开鼠标和键盘,五秒钟后
自动
启动
屏保
程序
。" WScript.sleep 5000 set ws=createobject("wscript.shell") select case
易语言制作WIN7徽章
屏保
的源码分析与实践
本文还有配套的精品资源,点击获取 简介:易语言是一种面向中文用户、以中文编程为特色的编程语言,旨在简化编程过程。该资源特别关注易语言编写的Windows 7风格的徽章
屏保
源码,为学习者提供了一个通过创建
屏保
程序
来增强编程技能的项目。
屏保
程序
在操作系统中起到保护显示器和提供视觉效果的作用。易语言提供了易于使用的图形界面设计工具和丰富的库函数,使得开发者可以方便地开发出具有Wi...
GUI10-写个
屏保
安装到女友电脑上
写一个屏幕保护
程序
,安装到女友的电脑上……再给她一通电话,聊着,聊着,她就能看到电脑变成表白墙啦!
Windows SDK/API
1,184
社区成员
22,326
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章