0

スクリーンセーバーがオフになっているときにイベントをキャッチしようとしています。実際、今のところ、スクリーンセーバーのイベントは発生していません (起動時でもありません)。アプリケーションがフォーカスされているとき(フォアグラウンド)にテストしています。

これは私のコードです:

#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;
}

助言がありますか?ありがとう!

4

0 に答える 0