Bagikan melalui


Fungsi JournalPlaybackProc

Deskripsi

Peringatan

JOURNALING Hooks API tidak didukung mulai dari Windows 11 dan akan dihapus dalam rilis mendatang. Karena itu, kami sangat menyarankan untuk memanggil API TextInput SendInput sebagai gantinya.

Fungsi panggilan balik yang ditentukan aplikasi atau yang ditentukan pustaka yang digunakan dengan fungsi SetWindowsHookExA/SetWindowsHookExW . Fungsi ini merekam pesan yang dihapus sistem dari antrean pesan sistem. Nantinya, aplikasi dapat menggunakan prosedur hook JournalPlaybackProc untuk memutar kembali pesan.

Catatan

Biasanya, aplikasi menggunakan fungsi ini untuk memutar kembali serangkaian pesan mouse dan keyboard yang direkam sebelumnya oleh prosedur hook JournalRecordProc . Selama prosedur hook JournalPlaybackProc diinstal, input mouse dan keyboard reguler dinonaktifkan.

Jenis HOOKPROC mendefinisikan penunjuk ke fungsi panggilan balik ini. JournalRecordProc adalah tempat penampung untuk nama fungsi yang ditentukan aplikasi atau yang ditentukan pustaka.

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

Parameter

code [in]

Jenis: int

Kode yang digunakan prosedur kait untuk menentukan cara memproses pesan.

Jika kode kurang dari nol, prosedur hook harus meneruskan pesan ke fungsi CallNextHookEx tanpa pemrosesan lebih lanjut dan harus mengembalikan nilai yang dikembalikan oleh CallNextHookEx.

Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
HC_GETNEXT 1 Prosedur kait harus menyalin mouse atau pesan keyboard saat ini ke struktur EVENTMSG yang diarahkan oleh parameter lParam .
HC_NOREMOVE 3 Aplikasi telah memanggil fungsi PeekMessage dengan wRemoveMsg diatur ke PM_NOREMOVE, menunjukkan bahwa pesan tidak dihapus dari antrean pesan setelah pemrosesan PeekMessage .
HC_NOREMOVE 2 Prosedur kait harus bersiap untuk menyalin mouse atau pesan keyboard berikutnya ke struktur EVENTMSG yang diarahkan oleh lParam. Setelah menerima kode HC_GETNEXT , prosedur kait harus menyalin pesan ke struktur.
HC_SYSMODALOFF 5 Kotak dialog modal-sistem telah dihancurkan. Prosedur kait harus melanjutkan memutar kembali pesan.
HC_SYSMODALON 4 Kotak dialog modal sistem sedang ditampilkan. Hingga kotak dialog dihancurkan, prosedur kait harus berhenti memutar kembali pesan.

wParam

Jenis: WPARAM

Parameter ini tidak digunakan.

lParam

Jenis: LPARAM

Penunjuk ke struktur EVENTMSG yang mewakili pesan yang sedang diproses oleh prosedur kait. Parameter ini hanya valid ketika parameter kodeHC_GETNEXT.

Mengembalikan

Jenis: LRESULT

Agar sistem menunggu sebelum memproses pesan, nilai yang dikembalikan harus berupa jumlah waktu, dalam jam centang, bahwa sistem harus menunggu.

(Nilai ini dapat dihitung dengan menghitung perbedaan antara anggota waktu dalam pesan input saat ini dan sebelumnya.)

Untuk segera memproses pesan, nilai yang dikembalikan harus nol. Nilai yang dikembalikan hanya digunakan jika kode kait HC_GETNEXT; jika tidak, itu diabaikan.

Keterangan

Prosedur hook JournalPlaybackProc harus menyalin pesan input ke parameter lParam . Pesan harus telah direkam sebelumnya dengan menggunakan prosedur hook JournalRecordProc , yang seharusnya tidak mengubah pesan.

Untuk mengambil pesan yang sama berulang kali, prosedur kait dapat dipanggil beberapa kali dengan parameter kode diatur ke HC_GETNEXT tanpa panggilan intervensi dengan kode yang diatur ke HC_SKIP.

Jika kodeHC_GETNEXT dan nilai yang dikembalikan lebih besar dari nol, sistem tidur untuk jumlah milidetik yang ditentukan oleh nilai yang dikembalikan. Ketika sistem berlanjut, sistem memanggil prosedur kait lagi dengan kode diatur ke HC_GETNEXT untuk mengambil pesan yang sama. Nilai yang dikembalikan dari panggilan baru ini ke JournalPlaybackProc harus nol; jika tidak, sistem akan kembali tidur untuk jumlah milidetik yang ditentukan oleh nilai pengembalian, panggil JournalPlaybackProc lagi, dan sebagainya. Sistem tampaknya tidak merespons.

Tidak seperti kebanyakan prosedur kait global lainnya, prosedur kait JournalRecordProc dan JournalPlaybackProc selalu dipanggil dalam konteks utas yang mengatur kait.

Setelah prosedur kait mengembalikan kontrol ke sistem, pesan terus diproses. Jika kodeHC_SKIP, prosedur kait harus bersiap untuk mengembalikan pesan peristiwa yang direkam berikutnya pada panggilan berikutnya.

Instal prosedur hook JournalPlaybackProc dengan menentukan jenis WH_JOURNALPLAYBACK dan penunjuk ke prosedur hook dalam panggilan ke fungsi SetWindowsHookEx .

Jika pengguna menekan CTRL+ESC ATAU CTRL+ALT+DEL selama pemutaran jurnal, sistem menghentikan pemutaran, membuka prosedur pemutaran jurnal, dan memposting pesan WM_CANCELJOURNAL ke aplikasi jurnal.

Jika prosedur kait mengembalikan pesan dalam rentang WM_KEYFIRST ke WM_KEYLAST, kondisi berikut berlaku:

  • Anggota paramL dari struktur EVENTMSG menentukan kode kunci virtual kunci yang ditekan.
  • Anggota paramH dari struktur EVENTMSG menentukan kode pemindaian.
  • Tidak ada cara untuk menentukan jumlah pengulangan. Peristiwa selalu diambil untuk mewakili satu peristiwa utama.

Lihat juga

CallNextHookEx

EVENTMSG

JournalRecordProc

PeekMessage

SetWindowsHookEx

WM_CANCELJOURNAL

Hook