gpt4 book ai didi

c++ - 捕捉屏保事件

转载 作者:可可西里 更新时间:2023-11-01 10:47:37 27 4
gpt4 key购买 nike

我正在尝试捕捉屏幕保护程序事件。这是我的代码:

#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_SCREENSAVE\n";
}
}

}

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) 失败。它返回代码:

error 1428: Cannot set nonlocal hook without a module handle

.我做错了什么?谢谢!

最佳答案

系统范围的 Hook 要求应用程序具有更高的访问权限。您需要以管理员身份运行代码。

也许您会对this感兴趣问题/答案。

关于c++ - 捕捉屏保事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16384107/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com