13. [pywin32] NotifyChangeEventLog() 함수
NotifyChangeEventLog(handle, handle)
이벤트 로그가 쓰여지면 알려주는 함수입니다.
인자로는 handle : int, handle : int 가 있습니다.
handle 은 OpenEventLog 함수의 리턴값으로 감시할 이벤트 로그의 핸들값입니다.
2번째 handle은 win32 event 핸들값으로 이벤트 로그에 로그가 쓰여지면 이 handle이 가리키는 이벤트 핸들에서 알람을 감지할 수 있습니다.
import win32evtlog
import win32event
import win32api
import win32con
pHandle = win32evtlog.OpenEventLog(None, "Application")
# Application 로그 오픈
cHandle = win32event.CreateEvent(None, win32con.TRUE, win32con.FALSE, None)
# 새로운 이벤트를 생성
win32evtlog.NotifyChangeEventLog(pHandle, cHandle)
while True:
x = win32event.WaitForSingleObject(cHandle, win32event.INFINITE) # 대기
if x == win32event.WAIT_OBJECT_0: # 로그가 쓰여지는 걸 감지
print(f"signaled!")
break
win32api.CloseHandle(cHandle)
win32evtlog.CloseEventLog(pHandle)
# 핸들 값 반환
위 코드를 실행하면 무한 대기할 것입니다.
다른 파이썬 쉘을 키고, ReportEvent 함수를 실행해봅시다. (ReportEvent 코드 참조)
이벤트 로그가 쓰여졌으니 이를 감지하고 signaled!를 출력하였습니다.
win32event.WaitForSingleObject 에 대해서는 win32event에서 설명하겠습니다~
[pywin32/win32event] - 3. [pywin32] WaitForSingleObject 함수
3. [pywin32] WaitForSingleObject 함수
int = WaitForSingleObject(hHandle, milliseconds ) 이벤트 하나를 등록시켜놓고 이벤트가 셋트 되면 이를 알려주는 함수입니다. 인자로는 hHandle : PyHANDLE, milliseconds : int 가 있습니다. hHandle: 대기상..
ssjune.tistory.com
'pywin32 > win32evtlog' 카테고리의 다른 글
12. [pywin32] OpenBackupEventLog() 함수 (0) | 2020.07.25 |
---|---|
11. [pywin32] ClearEventLog() 함수 (0) | 2020.07.25 |
10. [pywin32] BackupEventLog() 함수 (0) | 2020.07.25 |
9. [pywin32] ReadEventLog() 함수 (0) | 2020.07.25 |
8. [pywin32] GetOldestEventLogRecord() 함수 (0) | 2020.07.24 |