【问题标题】:keep a formless application from closing for a keyboard hook防止无形应用程序因键盘挂钩而关闭
【发布时间】:2010-09-28 07:03:52
【问题描述】:

我正在开发一个涉及键盘挂钩的 c++ win32 程序。该应用程序是一个没有任何用户界面的 win32 项目。我需要防止应用程序关闭而不使用导致挂钩不起作用或耗尽大量系统资源。我曾经使用消息框,但我需要应用程序完全不可见。

任何帮助将不胜感激!

如果您有任何问题,请尽管提问。

【问题讨论】:

    标签: c++ winapi keyboard hook


    【解决方案1】:

    更好的方法是添加一个不断循环的循环。

    bool shouldExit = false;
    
    do
    {
       //some code to handle events
       shouldExit = handleEvents();
    
       //sleep for a small bit so we dont take up 100% cpu
       sleep(500);
    }
    while (!shouldExit);
    

    【讨论】:

      【解决方案2】:

      我想你需要的是message only window

      MSDN 说)仅消息窗口使您能够发送和接收消息。它不可见,没有 z 顺序,无法枚举,并且不接收广播消息。窗口只是发送消息。

      【讨论】:

        【解决方案3】:

        你真的需要窗户吗? MSDN LowLevelKeyboardProc page 建议使用简单的消息循环。 只需在 hook 调用之后插入这个 sn-p。

        // message loop to keep the keyboard hook running
        MSG msg;
        while(GetMessage(&msg, NULL, 0, 0) > 0)
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-09-22
          • 2018-05-17
          • 1970-01-01
          • 1970-01-01
          • 2012-10-12
          • 1970-01-01
          • 2014-11-11
          • 1970-01-01
          相关资源
          最近更新 更多