C++ 使用前台应用程序捕获屏幕保护程序事件

C++ 使用前台应用程序捕获屏幕保护程序事件,c++,windows,windows-screensaver,C++,Windows,Windows Screensaver,当屏幕保护程序关闭时,我试图捕捉事件。 事实上,目前为止,我还没有收到任何屏幕保护程序事件(启动时也没有)。 当应用程序处于焦点(前台)时,我正在测试它 这是我的代码: #include "stdafx.h" #include "windows.h" LRESULT CALLBACK wndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); static void RegisterWindowClasses() { W

当屏幕保护程序关闭时,我试图捕捉事件。 事实上,目前为止,我还没有收到任何屏幕保护程序事件(启动时也没有)。 当应用程序处于焦点(前台)时,我正在测试它

这是我的代码:

#include "stdafx.h"
#include "windows.h"


LRESULT CALLBACK wndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);

static void RegisterWindowClasses() {

    WNDCLASS wndClass;

    memset(&wndClass, 0, sizeof(WNDCLASS));
    wndClass.style = CS_HREDRAW | CS_VREDRAW;
    wndClass.hInstance = NULL;
    wndClass.lpszClassName = _T("Plugin-Video");
    wndClass.hbrBackground = (HBRUSH) GetStockObject (DKGRAY_BRUSH);
    wndClass.lpfnWndProc = wndProc;
    RegisterClass(&wndClass);
}

LRESULT CALLBACK wndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    int wmId, wmEvent;
    PAINTSTRUCT ps;
    HDC hdc;

    switch (msg)
    {
    case WM_SYSCOMMAND:
        {
            switch (LOWORD(wParam))
            {
            case SC_SCREENSAVE:
                {
                    FILE *fl = fopen("this_is_a_event_test.txt","a");
                    fputs("SC_SCREENSAVE\n",fl);
                    fclose(fl);
                }
                break;
            case SC_MONITORPOWER:
                {
                    FILE *fl = fopen("this_is_a_event_test.txt","a");
                    fputs("SC_MONITORPOWER\n",fl);
                    fclose(fl);
                }
                break;
            default:
                {
                }
            }
        }
        break;
    }
    return DefWindowProc(hWnd, msg, wParam, lParam);
}



int _tmain(int argc, _TCHAR* argv[])
{
    RegisterWindowClasses();
    while(1){}
    return 0;
}
有什么建议吗?
谢谢

main()
中,我看不到您实际创建窗口的任何地方。@Roger-Right-这是一个输入错误。我已经添加了注册。好的,但这不会创建一个窗口。你需要
CreateWindow
ShowWindow
updateWidow
等等,还有一个消息循环。我想你需要温习一下Windows的一些基础知识:-(例如,请参见此处-@rogerowland-谢谢!