捕捉屏幕保护程序事件
Catching the screen saver event
我正在尝试捕捉屏幕保护程序事件。这是我的代码:
#include "stdafx.h"
#include <iostream>
#include "stdio.h"
#include <Windows.h>
HHOOK _hook;
LRESULT CALLBACK HookCallback(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode >= 0)
{
LPMSG msg = (LPMSG)lParam;
if(msg->message == WM_SYSCOMMAND)
{
if (msg->wParam == SC_SCREENSAVE)
{
std::cout<<"SC_SCREENSAVEn";
}
}
}
return CallNextHookEx(_hook, nCode, wParam, lParam);
}
void SetHook()
{
if (!(_hook = SetWindowsHookEx(WH_GETMESSAGE, HookCallback,NULL , 0)))
{
std::cout<<"Failed to install hook!n";
}
}
void ReleaseHook()
{
UnhookWindowsHookEx(_hook);
}
int _tmain(int argc, _TCHAR* argv[])
{
SetHook();
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
}
ReleaseHook();
return 0;
}
SetWindowsHookEx(WH_GETMESSAGE, HookCallback,NULL , 0)
功能失败。它返回代码:
错误1428:没有模块句柄
不能设置非本地钩子
。我做错了什么?谢谢!
系统级钩子要求应用程序具有提升访问权限。您需要以管理员身份运行代码。
也许你会对这个问题/答案感兴趣。
相关文章:
- 如何创建事件驱动的 SDL2 应用程序
- C++事件系统 - 多态事件和事件处理程序
- wxWidgets 拖放文件事件处理程序初始化问题(无效static_cast)
- 如何将IEnumerable与Process.Start的输出事件处理程序一起使用?
- "动态创建的事件处理程序"复选框
- Qt应用程序不响应鼠标和键盘事件
- Wxwidgets - 如何添加调整大小事件处理程序以使"X"绘图随窗口调整大小?
- Qt 键按事件处理程序仅在按下 ctrl、alt 或 shift 键时做出反应
- 激活上下文生成失败,依赖程序集,并行,事件 ID 33
- 类成员作为 C++ 中 C 样式事件的事件处理程序
- 是否可以在QT GUI应用程序中处理事件时播放加载动画指示器?
- QT应用程序意外的语言事件
- C 设计事件处理程序类
- 重写多线程事件驱动的C 程序以使用单线程Boost :: Asio
- 将托管事件处理程序传递给 Linux 中的非托管代码
- 如何在 c++ linux 中创建事件处理程序
- 解除 lambda 事件处理程序的绑定
- QCoreApplication事件循环和Windows服务控制处理程序功能
- 这是MFC C 中单个选择的ComboBox的事件处理程序
- 如何在Cocos2d Android应用程序中获得呼叫/挂起事件