如何停止屏幕保护程序?
<script type="text/javascript">
</script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
摘自:如何停止屏幕保护程序?
屏幕保护程序正运行,后台的程序该如何去停止?找了好多文章,都是禁用屏保的,停止正在运行的屏保就找不到了~~~~~~~~~~~~~~~~~~~大虾快来Help~~~~~~~~~~~~~~~~~~~~
---------------------------------------------------------------
W2k中如何终止屏幕保护
(hangwire发表于2001-11-17 9:30:59)
[问题]:
我编写了一个报警程序,功能是当我的报警程序接到报警消息时,必须终止屏幕保护程序或者节能模式并显示报警消息,或者在屏幕保护程序之上显示报警消息也可以。我用SetWindowPos(&wndTopMost…)试过不灵,在W2k的屏保中也没有成功。我的程序想在W2k里运行,如何在特定的事件发生时终止屏幕保护?
[解答]:
在Windows 9x中,终止屏幕保护的方法很简单,获取活动窗口指针,然后发送WM_CLOSE消息即可:
PostMessage(GetActiveWindow(),WM_CLOSE,0,0);
但是,在W2k中这个方法就不灵了,W2k的桌面概念与以往不同,其屏幕保护是运行在专门的桌面当中,这个桌面叫做"Screen-saver"。你用GetActiveWindow 或者 GetForegroundWindow函数是找不到屏幕保护窗口的,因为它运行在另外的桌面里。要获得屏保窗口,你必须打开这个专门的桌面,列举其中的所有窗口,判断窗口是不是屏幕保护窗口,如果保护窗口可见,则发送WM_CLOSE消息。详细代码如下(或者参见MSDN KB 文章Q140723):
BOOL CALLBACK KillScreenSaverFunc(HWND hwnd, LPARAM lParam)
{
if(IsWindowVisible(hwnd))
PostMessage(hwnd, WM_CLOSE, 0, 0);
return TRUE;
}
// 打开屏保专用桌面"Screen-saver"
//
HDESK hdesk = OpenDesktop(TEXT("Screen-saver"),
0, // flags
FALSE, // new processes inherit handle?
DESKTOP_READOBJECTS ¦ DESKTOP_WRITEOBJECTS); // access
/
// 用专门的"close"函数列举窗口并关闭桌面。
//
if (hdesk) {
EnumDesktopWindows(hdesk, KillScreenSaverFunc, 0);
CloseDesktop(hdesk);
}
---------------------------------------------------------------
屏保不是鼠标或者键盘有动作的时候就会被停止吗,不知道发送鼠标移动的消息能不能停止呢?
---------------------------------------------------------------
用程序模拟鼠标移动或者键盘按键也应该可以的啊
---------------------------------------------------------------
禁止屏幕保护:
::SystemParametersInfo(SPI_SETSCREENSAVEACTIVE,FALSE,NULL,0);
---------------------------------------------------------------
呵呵!
你的问题可以模拟解决
模拟键盘 用Keybd_event
模拟鼠标按键用mouse_event函数
模拟按了‘A’键
keybd_event(65,0,0,0);
keybd_event(65,0,KEYEVENTF_KEYUP,0);
模拟鼠标
POINT lpPoint;
GetCursorPos(&lpPoint);
SetCursorPos(lpPoint.x, lpPoint.y);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
- 永久链接:http://xs.tzblog.com/item/3387
- 引用通告:不开放.