다음을 통해 공유


JournalPlaybackProc 함수

Description

경고

저널링 후크 API는 Windows 11 시작하여 지원되지 않으며 향후 릴리스에서 제거될 예정입니다. 이 때문에 대신 SendInput TextInput API를 호출하는 것이 좋습니다.

SetWindowsHookExA SetWindowsHookExW함수와 함께 사용되는 애플리케이션 정의 또는 라이브러리 정의 콜백 함수입니다./ 함수는 시스템이 시스템 메시지 큐에서 제거한 메시지를 기록합니다. 나중에 애플리케이션은 JournalPlaybackProc 후크 프로시저를 사용하여 메시지를 재생할 수 있습니다.

참고

일반적으로 애플리케이션은 이 함수를 사용하여 JournalRecordProc 후크 프로시저에서 이전에 기록한 일련의 마우스 및 키보드 메시지를 재생합니다. JournalPlaybackProc 후크 프로시저가 설치되어 있으면 일반 마우스 및 키보드 입력이 비활성화됩니다.

HOOKPROC 형식은 이 콜백 함수에 대한 포인터를 정의합니다. JournalRecordProc 는 애플리케이션 정의 또는 라이브러리 정의 함수 이름의 자리 표시자입니다.

LRESULT CALLBACK JournalRecordProc(
  _In_ int    code,
       WPARAM wParam,
  _In_ LPARAM lParam
);

매개 변수

코드 [in]

형식: int

후크 프로시저가 메시지를 처리하는 방법을 결정하는 데 사용하는 코드입니다.

코드가 0보다 작은 경우 후크 프로시저는 추가 처리 없이 CallNextHookEx 함수에 메시지를 전달해야 하며 CallNextHookEx에서 반환된 값을 반환해야 합니다.

이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
HC_GETNEXT 1 후크 프로시저는 lParam 매개 변수가 가리키는 EVENTMSG 구조체에 현재 마우스 또는 키보드 메시지를 복사해야 합니다.
HC_NOREMOVE 3 애플리케이션은 peekMessage 처리 후 메시지가 메시지 큐에서 제거되지 않음을 나타내는 wRemoveMsg가 PM_NOREMOVE 설정된 PeekMessage 함수를 호출했습니다.
HC_NOREMOVE 2 후크 프로시저는 lParam이 가리키는 EVENTMSG 구조에 다음 마우스 또는 키보드 메시지를 복사할 준비를 해야 합니다. HC_GETNEXT 코드를 받으면 후크 프로시저는 메시지를 구조체에 복사해야 합니다.
HC_SYSMODALOFF 5 시스템 모달 대화 상자가 제거되었습니다. 후크 프로시저는 메시지 재생을 다시 시작해야 합니다.
HC_SYSMODALON 4 시스템 모달 대화 상자가 표시됩니다. 대화 상자가 제거될 때까지 후크 프로시저는 메시지 재생을 중지해야 합니다.

wParam

형식: WPARAM

이 매개 변수는 사용되지 않습니다.

lParam

형식: LPARAM

후크 프로시저에서 처리되는 메시지를 나타내는 EVENTMSG 구조체에 대한 포인터입니다. 이 매개 변수는 코드 매개 변수가 HC_GETNEXT 경우에만 유효합니다.

반환

형식: LRESULT

메시지를 처리하기 전에 시스템이 대기하도록 하려면 반환 값은 시스템이 기다려야 하는 시간(클록 틱)이어야 합니다.

(이 값은 현재 및 이전 입력 메시지의 시간 멤버 간의 차이를 계산하여 계산할 수 있습니다.)

메시지를 즉시 처리하려면 반환 값이 0이어야 합니다. 반환 값은 후크 코드가 HC_GETNEXT 경우에만 사용됩니다. 그렇지 않으면 무시됩니다.

설명

JournalPlaybackProc 후크 프로시저는 입력 메시지를 lParam 매개 변수에 복사해야 합니다. 메시지를 수정하지 않아야 하는 JournalRecordProc 후크 프로시저를 사용하여 이전에 메시지를 기록해야 합니다.

동일한 메시지를 반복해서 검색하기 위해 코드 매개 변수가 HC_GETNEXT 설정되고 코드가 HC_SKIP설정된 중간 호출 없이 후크 프로시 저를 여러 번 호출할 수 있습니다.

코드HC_GETNEXT 반환 값이 0보다 크면 반환 값으로 지정된 밀리초 수만큼 시스템이 절전 모드로 유지됩니다. 시스템이 계속되면 코드가 HC_GETNEXT설정된 후크 프로시저를 다시 호출하여 동일한 메시지를 검색합니다. JournalPlaybackProc에 대한 이 새 호출의 반환 값은 0이어야 합니다. 그렇지 않으면 시스템은 반환 값으로 지정된 시간(밀리초)에 대해 절전 모드로 돌아가고 JournalPlaybackProc을 다시 호출합니다. 시스템이 응답하지 않는 것처럼 보입니다.

대부분의 다른 전역 후크 프로시저와 달리 JournalRecordProcJournalPlaybackProc 후크 프로시저는 항상 후크를 설정하는 스레드의 컨텍스트에서 호출됩니다.

후크 프로시저가 시스템에 컨트롤을 반환하면 메시지가 계속 처리됩니다. 코드HC_SKIP 경우 후크 프로시저는 다음 호출에서 기록된 다음 이벤트 메시지를 반환하도록 준비해야 합니다.

SetWindowsHookEx 함수에 대한 호출에서 후크 프로시저에 대한 포인터와 WH_JOURNALPLAYBACK 형식을 지정하여 JournalPlaybackProc 후크 프로시저를 설치합니다.

사용자가 저널 재생 중에 Ctrl+ESC 또는 Ctrl+Alt+DEL을 누르면 시스템은 재생을 중지하고 저널 재생 프로시저를 풀고 저널링 애플리케이션에 WM_CANCELJOURNAL 메시지를 게시합니다.

후크 프로시저가 WM_KEYLAST WM_KEYFIRST 범위의 메시지를 반환하는 경우 다음 조건이 적용됩니다.

  • EVENTMSG 구조체의 paramL 멤버는 누른 키의 가상 키 코드를 지정합니다.
  • EVENTMSG 구조체의 paramH 멤버는 검사 코드를 지정합니다.
  • 반복 횟수를 지정할 수 있는 방법은 없습니다. 이벤트는 항상 하나의 키 이벤트를 나타내기 위해 수행됩니다.

추가 정보

CallNextHookEx

EVENTMSG

JournalRecordProc

PeekMessage

SetWindowsHookEx

WM_CANCELJOURNAL

후크